作为一名有情怀的网安从事者,见识过以前11-14年的网安风气;也见识过现在的网安风气,大家都在相互抄,相互转, 但是网安本身就是门玄学,格局和心态最重要。
这里用less26为例子, 首先我们假设目标服务器没有cdn和参数过滤机制,在id=1后加’ 或者 or " 页面不正常, 但我们要把他可能是数字型考虑进去, 准备的payload : ?id=1+1 ?id=2-1 ?id=1%0Aand(1=1) ?id=-1/**/||(1=2) 如果这里能跑,就能得到 1.能做关键词盲注,注入符能用
同时做字符型的payload: ?id=1’ ?id=1" ?id=1’) ?id=1") 注释符 # --空格 --+ ;%00(非常好使的注释符)
在目前为止,;%00是比较好用的, 做完闭合,sql注入就已经完成大半了。 准备注入绕过 and(1=1) AAndnd(1<>2) AAndnd(1<>1)
做完这里,就可以用shark2注入跑盲注了, 通过ascii绕过mysql的限制
同样,, less27 less28 我们做的盲注同样通吃。。 less29-31 我们的意图不是通关, sql注入,脏数据被清洗是最不愿意看到的 如果站有cdn,就要先找到ip服务端,把脏数据直接发给服务端 -----------这里是一个服务器的特性, tomcat接受getgetParameter(“id”)第一个值, php/apache使用$_GET[“id”]获取的是第二个值
服务端是php,脏数据只有发给php才有效。。
less32和less37 现在大部分mysql都是gbk的编码,如果他用了addslashes函数,我们就可以宽字节注入。 所以在找注入点,?id=1%df’ 加入进去。 之前一段时间挖edu,有几个站就这样挖出,关闭了回显, 单%27是很难找出存在的sql注入,大大几百人在挖,防护强度肯定少不了的。 如果他用了mysql_real_escape_string()函数,正常是没有注入的,但get型传参的时候使用URLencode,我们还是可以宽字节注入。
最后提下shark2做cookie64编码注入的问题: 不要勾选url编码,url编码再base64后脏数据就失效了
已经忘了这是第几遍刷SQLI_LESS 了,给刚入门,或者想通过刷靶场提升水平的提个醒,单刷和看文章是没必要的,SQLI可以用工具跑, 多关注注入点的位置,如何闭合和有效绕过
|