开始挑战第二十九关(Protection with WAF) 0x1查看源码 (1)login.php页面存在防护,只要检测到存在问题就跳转到hacked.php页面(其他信息看备注) 0x2 foreach循环 (1)第一方式 foreache($qs_array as $val) 这里的$qs_array就是需要遍历的数组名,每次循环时,$qs_array数组的当前元素的值被赋值给$val,并且数组的会逐次向后移动一步,即下次循环得到另一个元素; (2)第二方式 foreache($qs_a…
开始挑战第三十关和三十一关(Protection with WAF) 0x1 前言 这关其实和29关是同样的,login.php页面存在防护,只要检测到存在问题就跳转到hacked.php页面,不同的是采用的双引号进行闭合而已,其他思路是同样的 0x2 开始测试 (1)输入测试字符,使其报错 (2)分析报错信息 很明显看出是采用双引号闭合,接下来就大同小异了,我就不做测试了 0x3  三十一关 (1)源码分析 可以看出思路是一样的,只是采用了双引号和括号进行闭合…
开始挑战第二十六关(Trick with comments and space) 0x1看看源代码 (1)过滤了#  or and  /**/  /  \ ,通过判断也过滤了空格 (2)这样一来只能看看其他方式绕过吧,网上找了些资料,对于绕过空格限制有大把的方式对于空格,有较多的方法:%09 TAB键(水平).%0a 新建一行.%0c 新的一页.%0d return功能.%0b TAB键(垂直).%a0 空格,可惜老天对我太不眷顾了,个个都用不了,最后查到说是因为window下apache解析的…
开始挑战第二十四关(Second Degree Injections) 0x1 前言 SQL注入一般分为两类:一阶SQL注入(普通SQL注入),二阶SQL注入 .二次注入不是注入两次的意思,请不要混淆 0x2 什么是二阶注入 二阶注入是指客通过构造数据的形式,在浏览器或者其他软件中提交HTTP数据报文请求到服务端进行处理,提交的数据报文请求中可能包含了黑客构造的SQL语句或者命令信息.虽然参数在过滤后会添加 “\” 进行转义,但是“\”并不会插入到数据库中,这样就可以利用这个构造一个二次注入.…
开始挑战第二十五关(Trick with OR & AND) 第二十五关A(Trick with comments) 0x1先查看源码 (1)这里的or和and采用了i正则匹配,大小写都无法绕过 (2)看下mysql逻辑运算符,and和or还可以使用&&和||,如下图: 0x2开始测试 (1)首先使用or和and看看,直接被过滤了 (2)那就直接改为||  &&利用,成功 (3)或者采用双写的方式来绕过oorr 剩下的注入方式都和以前同样,就不测试了.......…
开始挑战第二十八关(Trick with SELECT & UNION) 第二十八A关(Trick with SELECT & UNION) 0x1看看源代码 (1)与27关一样,只是换了中匹配方式. (2)i表示正在匹配的模式,i是忽略大小写, s就是匹配任意空白字符,制表符啊,换行啊空格啊等 (3)那这样我们就不用空格了,直接采用()来玩,剩下的就是一样的,就不演示了..... 这里采用')闭合就好 第二八A关是同样的,闭合方式同样,但是源代码中只是对union select中过滤了,…
开始挑战第二十一关(Cookie Injection- Error Based- complex - string) 和二十二关(Cookie Injection- Error Based- Double Quotes - string) 这关其实和二十关是一样的,只是这关的cookie采用了base64加密,和单引号括号 来吧,开搞吧,利用单引号进行报错,注意需要利用base64进行转换下,可以利用hackbar的,也可以用一些转换工具 已经报错,错误信息就不说明了,相信到二十一关这些都是应该…
开始挑战第二十三关(Error Based- no comments) 先尝试下单引号进行报错 再来利用and来测试下,加入注释符#,编码成%23同样的报错 再来试试--+,同样的效果 同样的,先看看源代码,这里利用正则查找,对注释符等都进行了过滤 这里一来,注释符不能使用了,只能采用单引号闭合的方法来绕过了,成功 接下来构造语句来获取数据库 此处讲解几个知识点: 1.ID = -1,为什么要用-1,因为SQL语句执行了两个选择语句,第一个选择为ID的选择语句,第二个为我们构造的选择语句.只有一…
开始挑战第十八关(Header Injection- Referer- Error Based- string) 先来说下HTTP Referer: HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器以此可以获得一些客户端信息.同理,还是先输入一组随机的用户名密码 同样的先来看下源代码,这里都做了备注: 好了,同样的uname,passwd都被函数过滤,只能从其他方式去入手,看登录看看 输入正…
查看源码,用户名和密码通过post提交 加单引号提交 出现报错,推测对应的SQL语句 , 直接使用or构造永真登录 成功,注意此处登录的用户为表中的第一个用户 需要改变用户可以通过改变筛选条件实现 作为表中的第二个用户登录 如果在客户端进行了敏感字符的输入限定,可以直接使用hackbar提交POST数据绕过 如果采用构造这种输入,登录会失败,原因是因为and的优先级是高于or的 yyy='test'返回false然后and运算仍为false, xxx='1' or false结果为false 也…