首页
社区
课程
招聘
[讨论]在SQL注入实践的过程中,我们不得不面临的六大难题
发表于: 2014-8-15 15:50 5182

[讨论]在SQL注入实践的过程中,我们不得不面临的六大难题

2014-8-15 15:50
5182
SQL Injection之所以令人着迷,因为对于每一个网站,在进行攻击的时候,都会遇到不同的细节、不同的情况,要解决每一个问题都需要找资料,结合自己的思考。
         SQL自动化和半自动化检测以及攻击工具有以下十几种:
        1、网站安全注入检测工具 V2
        2、阿D
        3、明小子
        10、pangolin(goodwell的作品)
        (以上是国内的)
        4、SQL Power Injector 1.2
        5、Paros 3.2.13
        6、Enema
        7、FG-Injection Framework
        8、Safe3SI
        9、Havij 1.51
        11、Absinthe.Gui
        12、bsqlbf.pl
        13、sqlget
        14、 sqlninja
        15、 aidsql
        16、sqlcake.rb
        17、BSQL
        (以上是国外的)
        还有一些林林总总的,如:HDSI、NBSI、河马注入系列、Oracle反弹注入工具、“小马”的cookie注入工具、“寂寞的刺猬”的中转注入工具,等等等等。
        通过一年多的实践,个人认为最好的需找SQL注入点的工具就是Google语法搜索,而最好的自动攻击工具就是Sqlmap。
         在SQL注入实践的过程中,我们不得不面临的六大难题:
        ①、有的网站扫描了一段时间后就无法建立连接了,即使换了IP,连接时间也仅能维持更短的时间。是不是防火墙或者入侵检测系统做了设置,是依据我攻击端的什么特征对我进行限制的?
        ②、如何判断伪静态网页,如何利用中转注入技术对伪静态网页,包括asp和PHP的网站进行攻击,除了中转注入还有没有其他技术能够对伪静态网页进行攻击?
        ③、如何更好地使用Sqlmap的tamper脚本技术绕开WAF?
        ④、SQLAMP在dump IBM DB2会出现数据乱码现象,如何解决?
        ⑤、针对Mysql的schema表无法用的时候,或者Access数据库,枚举表名有无法枚举出来,肿么办?
        ⑥、有些网站入侵后,想使用Sqlmap结合meterpreter将主机把控,可是Sqlmap找不到网站对应的上传文件到服务器的路径,肿么办?
       欢迎大家讨论!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (30)
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
说的很好,收藏一个。
2014-8-16 12:11
0
雪    币: 496
活跃值: (89)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
学习了。
2014-8-17 20:35
0
雪    币: 49
活跃值: (118)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
学习一下,收藏了,谢谢楼主
2014-8-19 13:16
0
雪    币: 249
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
开始讨论:申明下,我是彩笔
1、   是不是防D的模块开启了?
2、   不知
3、    问题不明确
4、    没碰到过这情况
5、    select into outfile试试
6、    从来不这么玩
2014-10-13 21:11
0
雪    币: 135
活跃值: (63)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
求大神带入门啊,感觉入不了门。
2014-10-14 11:04
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
①、有的网站扫描了一段时间后就无法建立连接了,即使换了IP,连接时间也仅能维持更短的时间。是不是防火墙或者入侵检测系统做了设置,是依据我攻击端的什么特征对我进行限制的?

有可能有waf,会阻拦你的IP。你可以一点一点尝试构造语句,比如select union 组合,看看那一次会被封闭。

        ②、如何判断伪静态网页,如何利用中转注入技术对伪静态网页,包括asp和PHP的网站进行攻击,除了中转注入还有没有其他技术能够对伪静态网页进行攻击?
        ③、如何更好地使用Sqlmap的tamper脚本技术绕开WAF?
记得在t00ls or 91ri 可以搜索一下,介绍过伪静态的利用。

        ⑥、有些网站入侵后,想使用Sqlmap结合meterpreter将主机把控,可是Sqlmap找不到网站对应的上传文件到服务器的路径,肿么办?
     
这点经常在linux的机器遇到,sqlmap的cmd_shell功能自动检索和判断路径,或者想办法让php报错,或者从该主机其他web站点想办法报错。或者找info.php,phpinfo.php之类。或者用sqlmap的udf功能尝试执行命令获取路径。
2014-11-26 00:34
0
雪    币: 44
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
自己三个月以来,也一直在试图回答自己提出的六个问题,看到上述网友的热心讨论,自己再参合参合O(∩_∩)O~
首先,那17款工具,大部分都已过时,但它们对于sql注入的新手还真不好利用~因为使用起来必须了解sql注入的原理,说到这里,我不免又想提出一个问题,请大家思考和讨论,
①、什么是page comparison?sequence matcher的运行机理?
用sqlmap的同志最常见的话,我想应该是这句:target URL is not stable. sqlmap will base the page comparison on a sequence matcher. If no dynamic nor injectable parameters are detected, or in case of junk results, refer to user's manual paragraph 'Page comparison' and provide a string or regular expression to match on
这句话里面透露的sequence matcher在我上述提供的17个工具名单里,就有,而且必须自己手动配置。
============================================================
我最常用的工具是五款:
①、sqlmap
②、sqlninja(在与shell和主机的把控上,比sqlmap要强大,个人感觉,但前提是注入点很明显)
③、Safe3SI(他竟然能发现sqlmap发现不了的注入点,不过有时候是误报)
④、pangolin
⑤、havij
对于④——穿山甲、⑤——胡萝卜,它们dump数据比sqlmap要快,个人感觉哈
============================================================
然后是我提的那六个问题,第一个问题,关于IP被禁止的问题,noid同志说的很对,应该是WAF通过某种检测机制,将我的IP拉入了黑名单,禁止来自于它的任何数据包访问。对于这种网站(此类网站还不在少数),可以先通过sqlmap检测出它seems be哪种类型的注入,然后过段时间,等WAF解禁IP后,再手工注入!只有手工注入了,比如说是基于布尔的盲注,就用基于布尔盲注的语句,如果是基于延迟时间的盲注,就使用相应的语句。
============================================================
第二个问题,确实有很多网站,有一些技巧,是可以判断该网站是不是伪静态,如果是伪静态网站,仍然是可以利用sql注入进行攻击的,除了中转注入,sqlmap里面,在需要注入的参数后面加上*号,也可以进行伪静态的注入。至于除了中转注入和sqlmap加星号之外,还有没有其他方法,请网友讨论~~
============================================================
第三个问题,我想申明,sqlmap是开源的,它的tamper文件夹和payload源代码,有空真的要好好看看,是Python写的,里面有很多技巧,看懂后,有利于同志们手工拿站。tamper实际上通过让注入代码变形,逃过安全钩和防火墙以及过滤的一些技巧。
============================================================
第四个问题,这个乱码问题我感觉哈,和我的sqlmap设置没关系,sqlmap支持很多语言,但是这个问题我一直摸不着头脑,因为遇到的情况也属于少数,它的乱码是非常奇怪的乱码,一个字符内就是一个框,里面四个角分别是M,1等东东,不知道有没有同志遇到过~欢迎讨论
============================================================
第五个问题,不仅access,很多数据的表名千奇百怪,既无法从系统表中dump出来,又枚举不出来,只能靠猜了,其实手工也都是猜的。其实,很多表名,和网站的系统、版本、模板以及内容有关系。具体还有什么方法,请网友讨论~~PS:无限游侠同志的通过select into outfile未免不是一种方法,他是通过写入将数据库导入本地,但是权限必须高噢~~
============================================================
第六个问题,noid同志的方法很开拓,想到了利用旁站的爆错。至于udf怎么用,菜鸟的我表示不知道,貌似sqlmap里面也可以利用自己的udf命令吧,还有最近更新的sqlmap里面,cmd_shell查找路径的功能比以前增加了一些,同志们有木有发现?
2014-11-27 14:31
0
雪    币: 223
活跃值: (516)
能力值: ( LV13,RANK:520 )
在线值:
发帖
回帖
粉丝
9
穿山甲好像是goodwell写的吧.
古木的易语言版管中窥豹好像用的人也不少.
2014-11-27 14:43
0
雪    币: 44
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
管中窥豹,让我眼前一亮,功能貌似强大哇~~待我仔细品尝学习~~
2014-11-27 15:09
0
雪    币: 223
活跃值: (516)
能力值: ( LV13,RANK:520 )
在线值:
发帖
回帖
粉丝
11
其实,除了你说的这些,国内还是有很多不错的软件的.
只是年代久远,都"失传"了.
像小荣的爆破工具,好像是叫 wsu.exe的.
那时候,破解网站,真的是个"神器"
2014-11-27 15:12
0
雪    币: 44
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
说实话,没有这些老一辈的网络安全爱好者,也就没有国内现在的网络安全。
网络攻防的技术就是在攻与防的此消彼长、对立统一中迅速成长起来的。
相信,随着网站防护技术的提高和国民网络安全意识的养成,越来越多的工具会“失传”,也会有越来越多的工具“诞生”,毕竟旧的不去新的不来嘛留下来的也就成为了精华
2014-11-27 15:18
0
雪    币: 223
活跃值: (516)
能力值: ( LV13,RANK:520 )
在线值:
发帖
回帖
粉丝
13
穿山甲是goodwell开发的. goodwell是中国人,不属于国外软件...
2014-11-27 16:23
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
是zwell把。。不是gw
2014-12-5 22:48
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
先mark下,最近正好再研究这个
2015-1-9 17:27
0
雪    币: 255
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
make下
2015-4-1 12:15
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
先mark下,最近正好再研究这个
2015-4-2 00:09
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
卧槽,都遇到过,但目前还都困惑。。
2015-5-27 02:31
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
mark下
2015-7-3 10:10
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
怎么样去发现sql注入漏洞呢?有没有好的方法?
发现sql注入漏洞之后 才会费尽心思去想怎么去绕过waf 怎么样去获得表 之类的 这样或许能够出现新的方法。
2015-7-7 23:15
0
雪    币: 81
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
mark下,收藏学习
2015-7-8 00:19
0
雪    币: 44
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
最近写一篇文章,继续跟帖和大家讨论分享SQL注入技术,不妥之处,希望大家在后面跟帖指出。
       SQL注入(SQL injection),是发生于应用程序数据层的安全漏洞。SQL注入是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的SQL指令而运行,使得服务器遭到破坏或是入侵。
        再简单点描述,SQL注入是一种通过操纵输入来修改后台SQL语句以达到利用代码进行攻击目的的技术。
        SQL注入有几种分类方法:
        1.从提交SQL指令所处于的位置来分有:urlpath、body、cookie、raw;
        2.从SQL注入点的参数类型来分有:Integer(数字型)、Char(字符型)、Form(框架型);
        3.从SQL注入是否成功所判断的依据来分有:基于显错,盲注。盲注又分为:基于内容,基于时间两种。
        基于显错和盲注的区别在于,前者根据构造的SQL注入指令不同而返回不同的结果,达到从结果中读取需要的账户名和密码,或读取文件内容,写入指令到文件中等等目的,基于显错的返回结果一般是不同。而盲注的返回结果一般只有两种,登陆成功或失败,反应时间长或短等等,通过两种截然相反的结果判断SQL语句的正确与错误,只是可以根据返回网页的内容,以及返回网页的响应时间两种情况来盲注。
        4.从后台数据库提取数据的技术来分有:推断和非主流通道。非主流通道技术包括时间延迟、错误、域名系统(DNS)查询、HTML响应、Email甚至icmp等技术。
        非主流通道技术由于传输数据的通道的隐蔽,不易被发现。
========================================================================================================
      SQL注入的指令的编码技术主要有以下七种,用于绕过modsecurity等基于正则表达式的过滤符号与关键词等防注入代码以及硬件WAF、云WAF等应用防火墙。
        1. url encode
        2. base64
        3.json
        4.querystring
        5.php serialize
        6.unicode escape
        7.html encode
=======================================================================================================
        从用户输入中检测SQL注入是一个很难的问题,SQL本身是图灵完全的,也就是说可以在SQL中实现任意算法,SQL的多样性和复杂性比想象中多得多。从现状来说,一是没有一家SQL完整实现SQL规范;二是有各种不同的扩展,语法,规则,甚至bugs;三是递归注释,数字、字符串都不能用正则完整表达。
        2005年的blackhat大会上,Hanson和Pattersn从理论上证明了,任何基于正则的输入验证系统,都存在以下两个情况至少有一个为真:
        1.可以构造一个安全的正常请求,但是被验证系统标记为危险/不正常;
        2.可以构造一个不正常的攻击请求,但是验证系统标记为正常请求。
2015-7-17 12:09
0
雪    币: 44
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
这是在乌云看到的一个帖子,关于sqlmap无法链接到目标网站,怎么办?
Question:
       if the problem persists please check that the provided targ
et URL is valid. In case that it is, you can try to rerun with the switch '--ran
dom-agent' turned on and/or proxy switches ('--ignore-proxy', '--proxy',...)   

        网站是可以正常访问,一但手工或者SQLMAP进行注入都将会变成无法访问,再次正常访问是可以访问的,所以这个是WAF,关键就是如何过这样的WAF?

Answer:
         情况一:user-agent暴露了你使用的工具
        首先,注入工具(类似sqlmap、Havij)等等都有特定的指纹,存在于request headers字段。
        例如:sqlmap的请求参数值中,client下的User-agent字段为:sqlmap/1.0-dev(http://sqlmap.org)
        而后,WAF会通过以下六个规则判断:
        一、 扫描器指纹(head字段/请求参数值等)
        二、 单IP+ cookie某时间段内触发规则次数
        三、 隐藏的链接标签(<a>)
        四、 Cookie植入
        五、 验证码验证
        六、 单IP请求时间段内Webserver返回http状态404比例
        参考来自于:http://drops.wooyun.org/tips/730
        如果是这种情况,可以使用命令--random-agent解决
=========================================================================================================
        情况二:IP为境内的,网址被墙了,域名无法解析
        由于GFW的作用,境内IP无法访问某些敏感网站。而你的浏览器使用了红杏之类的网页局部代理,故可以访问。
        如果是这种情况,可以使用命令 --proxy-file="代理IP文件路径"或者使用洋葱路由 --tor
=========================================================================================================
        情况三:sqlmap发包太频繁了,被WAF警觉而限制了
        如果是这种情况,可以使用命令--delay=,用以调大每个http请求包之间的时间间隔
=========================================================================================================
        情况四:上述方法都不行
        手工注入吧
2015-7-17 12:13
0
雪    币: 11
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
学习了!
2015-9-23 19:57
0
雪    币: 188
活跃值: (32)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
25
sqlmap感觉还是很强大的!
2015-10-9 17:03
0
游客
登录 | 注册 方可回帖
返回
//