关于sql注入的另类攻击

127 阅读1分钟
                            关于sql注入的另类攻击
噢,伙计,you no(know),今天我遇到这样一种情况他说### supersqli,意思是很大的漏洞,一开始我也是这样这样认为的直到

return preg_match("/select|update|delete|drop|insert|where|./i",$inject);

是的,伙计,他对我的一些词语过滤掉了,我也不知道他换成了什么,事实证明它不是很大的漏洞而是做了许多防御。好吧现在,我们来来开始对这个文本框进行注入吧。 首先就是判断类型了1+1,之类的,这里跳过了是字符型,又判断闭合,很简单又跳过了是’闭合,由上面得出它对select|update|delete|drop|insert|where进行了过滤,而且大小写不行,那我试试复写,额,,,seleselect结果还是提示 ``` return preg_match("/select|update|delete|drop|insert|where|./i",$inject);

啊,不行没关系这证明了它进行多次过滤
试试加注释sele/**/ct,加闭合sel''ect,看看有没有安全狗selec/*!90000*/t

array(2) { [0]=> string(1) "1" [1]=> string(7) "hahahah" }

啊没结果啊,怎么帮,真的注入不了了吗,真的就这样放弃了吗,真的就这样放弃了吗
有了我可以闭合结束语句,用show试试看

array(1) { [0]=> string(11) "ctftraining" }

array(1) { [0]=> string(18) "information_schema" }

array(1) { [0]=> string(5) "mysql" }

array(1) { [0]=> string(18) "performance_schema" }

array(1) { [0]=> string(9) "supersqli" }

array(1) { [0]=> string(4) "test" }

yes,有数据库名了,然后就是找到相应的表,找出flag,都是show只可以查列名,怎么办,怎么办,对啊它没有对**extractvalue**,和sleepg'过滤我可以用报错注入,和时间盲注啊,,
未完待续,且看下集屠龙少年拿下flag............