sqlmap的脚本使用和编写修改
1)基本使用
想跑哪个参数,在哪个参数后面+“*”号
--threads 线程数
--random-agent 随机的user-agent头
--level 注入程序
2)脚本使用
-tamper=
例子:python sqlmap.py -u "http://192.168.1.10/sql/Less-4/?id=1" -tamper=base64encode.py --proxy="http://127.0.0.1:8080"
(1)apostrophemask.py 用UTF-8全角字符替换单引号字符
(2)apostrophenullencode.py 用非法双字节unicode字符替换单引号字符
(3)appendnullbyte.py 在payload末尾添加空字符编码
(4)base64encode.py 对给定的payload全部字符使用Base64编码
(5)between.py 分别用“NOT BETWEEN 0 AND #”替换大于号“>”,“BETWEEN # AND #”替换等于号“=
(6)bluecoat.py 在SQL语句之后用有效的随机空白符替换空格符,随后用“LIKE”替换等于号
(7)chardoubleencode.py 对给定的payload全部字符使用双重URL编码(不处理已经编码的字符)
(8)charencode.py 对给定的payload全部字符使用URL编码(不处理已经编码的字符)
(9)charunicodeencode.py 对给定的payload的非编码字符使用Unicode URL编码(不处理已经编码的字符)
(10)concat2concatws.py 用“CONCAT_WS(MID(CHAR(0), 0, 0), A, B)”替换像“CONCAT(A, B)”的实例
(11)equaltolike.py 用“LIKE”运算符替换全部等于号“=”
(12)greatest.py 用“GREATEST”函数替换大于号“>”
(13)halfversionedmorekeywords.py 在每个关键字之前添加MySQL注释
(14)ifnull2ifisnull.py 用“IF(ISNULL(A), B, A)”替换像“IFNULL(A, B)”的实例
(15)lowercase.py 用小写值替换每个关键字字符
(16)modsecurityversioned.py 用注释包围完整的查询
(17)modsecurityzeroversioned.py 用当中带有数字零的注释包围完整的查询
(18)multiplespaces.py 在SQL关键字周围添加多个空格
(19)nonrecursivereplacement.py 用representations替换预定义SQL关键字,适用于过滤器
(20)overlongutf8.py 转换给定的payload当中的所有字符
(21)percentage.py 在每个字符之前添加一个百分号
(22)randomcase.py 随机转换每个关键字字符的大小写
(23)randomcomments.py 向SQL关键字中插入随机注释
(24)securesphere.py 添加经过特殊构造的字符串
(25)sp_password.py 向payload末尾添加“sp_password” for automatic obfuscation from DBMS logs
(26)space2comment.py 用“/**/”替换空格符
(27)space2dash.py 用破折号注释符“--”其次是一个随机字符串和一个换行符替换空格符
(28)space2hash.py 用磅注释符“#”其次是一个随机字符串和一个换行符替换空格符
(29)space2morehash.py 用磅注释符“#”其次是一个随机字符串和一个换行符替换空格符
(30)space2mssqlblank.py 用一组有效的备选字符集当中的随机空白符替换空格符
(31)space2mssqlhash.py 用磅注释符“#”其次是一个换行符替换空格符
(32)space2mysqlblank.py 用一组有效的备选字符集当中的随机空白符替换空格符
(33)space2mysqldash.py 用破折号注释符“--”其次是一个换行符替换空格符
(34)space2plus.py 用加号“+”替换空格符
(35)space2randomblank.py 用一组有效的备选字符集当中的随机空白符替换空格符
(36)unionalltounion.py 用“UNION SELECT”替换“UNION ALL SELECT”
(37)unmagicquotes.py 用一个多字节组合%bf%27和末尾通用注释一起替换空格符 宽字节注入
(38)varnish.py 添加一个HTTP头“X-originating-IP”来绕过WAF
(39)versionedkeywords.py 用MySQL注释包围每个非函数关键字
(40)versionedmorekeywords.py 用MySQL注释包围每个关键字
(41)xforwardedfor.py 添加一个伪造的HTTP头“X-Forwarded-For”来绕过WAF
3)os-shell
(1)前提条件:
<1>拥有网站的写入权限
<2>Secure_file_priv参数为空
(2)原理:
必须提前知道物理路径,还有脚本类型语言,先通过写入一个上传框文件(tmpuoeyk.php)--使用的是INTO OUTFILE函数来
上传的上传框,然后通过这个上传框来进行上传后门文件(tmpbjkvk.php),然后利用此后门文件来执行命令
4)高级用法
(1)利用Google语法进行批量扫描:sqlmap.py -g “inurl:php?id=1 site:.com.cn”
(2)--file-write 写入文件
sqlmap -u "http:/192.168.3.2/sqli-labs-master/sqli-labs-master/Less-1/?id=1" --file-write "/root/1.txt"
(3)--file-read 读取文件
sqlmap -u "http:/192.168.3.2/sqli-labs-master/sqli-labs-master/Less-1/?id=1" --file-read "C:/post.txt"
(4)--sql-shell
用于执行sql命令,主要用于探测文件路径
python sqlmap.py -u "http://192.168.68.132/sqli-labs/Less-1/?id=1" --sql-shell
select @@datadir; 查看文件路径
select @@version; 查看版本信息
(5)--reg-read
读取注册表
sqlmap的高级使用-tamper脚本使用、os-shell原理等
最新推荐文章于 2025-04-19 15:26:22 发布