SQLMap 使用
目录
SQLMap 使用
GET型注入
1、判断是否存在注入
假设目标注入点是 http://xxxxxxx?id=1
,判断其是否存在注入的命令如下:
|
|
当注入点后面的参数大于等于两个时,需要加双引号,如下所示。
|
|
2、爆出服务器的所有数据库名
|
|
3、爆出当前网站的数据库名
|
|
4、爆出表名
|
|
5、爆出字段名(列名)
|
|
6、爆出数据
|
|
POST型注入
注入方式一:BurpSuite抓包
BurpSuite抓请求包、复制内容保存到txt文件
1、判断是否存在注入
|
|
2、爆出服务器的所有数据库名
|
|
- it looks like the back-end DBMS is ‘MySQL’. Do you want to skip test payloads specific for other DBMSes? [Y/n] 它看起来像后端DBMS是’MySQL’。 是否要跳过特定于其他DBMS的测试负载? [Y/n] 输入"Y"
- for the remaining tests, do you want to include all tests for ‘MySQL’ extending provided level (1) and risk (1) values? [Y/n] 对于剩余的测试,您想要包括所有针对“MySQL”扩展提供的级别(1)和风险(1)值的测试吗? [Y/n] 输入"N"
- POST parameter ’n’ is vulnerable. Do you want to keep testing the others (if any)? [y/N] POST参数’n’是脆弱的。 你想继续测试其他人(如果有的话)吗?[y/N] 输入"Y"
3、爆出当前网站的数据库名
|
|
4、爆出表名
|
|
5、爆出字段名(列名)
|
|
6、爆出数据
|
|
POST型注入也可以用
-p
来指定某个参数
注入方式二:自动搜索表单
|
|
- do you want to test this form? [Y/n/q] 要测试此表单吗?[Y/n/q] 输入"Y"
- do you want to fill blank fields with random values? [Y/n] 是否要填充带有随机值的空白字段? [Y/n] 输入"Y"
- it looks like the back-end DBMS is ‘MySQL’. Do you want to skip test payloads specific for other DBMSes? [Y/n] 它看起来像后端DBMS是’MySQL’。 是否要跳过特定于其他DBMS的测试负载? [Y/n] 输入"Y"
- for the remaining tests, do you want to include all tests for ‘MySQL’ extending provided level (1) and risk (1) values? [Y/n] 对于剩余的测试,您想要包括所有针对“MySQL”扩展提供的级别(1)和风险(1)值的测试吗?[Y/n] 输入"N"
- POST parameter ’n’ is vulnerable. Do you want to keep testing the others (if any)? [y/N] POST参数’n’是脆弱的。 你想继续测试其他人(如果有的话)吗?[y/N] 输入"N"
- do you want to exploit this SQL injection? [Y/n] 你想利用SQL注入? 输入"Y"
SQLMap getshell
前提
- 网站必须是root权限
- 知道网站的绝对路径
- PHP关闭魔术引号,php主动转义功能关闭
- secure_file_priv=值为空
1、SQLMap跑包
|
|
- -r :从文件中获取HTTP请求。
- -dbms=mysql:指定跑mysql数据库。
- –os-shell:本质就是写入两个php文件。
2、选择网站语言
3、选择网站的的绝对路径
4、访问后门链接,上传木马,连接木马
当我站在传授他人的角度思考问题时
才能真正领悟并融会贯通
博客受益者是未来那个遗忘某个技术的自己