图片发自简书 App
传送门:
sql 注入那些事儿 -- 如何优雅地进行 SQL 注入 (1)
sql 注入那些事儿 -- 如何优雅地进行 SQL 注入 (2)
sql 注入那些事儿 -- 如何优雅地进行 SQL 注入 (3)
sql 注入之双查询注入
上一篇, Sunny 和大家聊了双查询注入. 这一篇, 我们还是继续说说双查询注入. 其实双查询注入并没有什么难的, 童鞋们可以把它当作一个公式, 在实际注入过程中可能会用到. 相对来说, 能够双查询注入的地方基本都能盲注. 那么双查询注入的优势在哪里呢? 还是在于简单两字, 盲注要进行几十次上百次的注入过程, 双查询注入几次就能完成.
上次说到 lesson 5, 那么今天就顺理成章地说说 lesson 6. 为什么说 lesson 6 呢? 因为它也是一个可以用双查询注入的. 那 Sunny 怎么知道的呢? 因为 Sunny 已经把整个 sqli-labs 刷了个遍了.
话不多说, 还是先看界面:
图片. png
然后我们试试注入姿势, 这个还是很重要的, 猜不出来 sql 语句, 就别想把自己的语句嵌进去啦. 单双引号, 括号都试一遍, 发现双引号会有报错信息:
图片. png
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"1"" LIMIT 0,1' at line 1
很明显, 双引号注入. 好了, 接下来该干什么了? 嗯. 应该套用双查询注入的公式了. 几天没注入, 公式有点忘了咋办? 看我之前的文章? 可以不用那么麻烦, 我在这里再写另外一个公式, 咱们今天就用这个新的 payload. 当然, 除了这些还可能会有其他的 payload, 也欢迎童鞋们来交流. 今天要说的公式如下, 利用派生表:
select [column...] from (select count(*),concat_ws(':',[查询语句],floor(rand()*2)) as a from [table_name] group by a) x#
写成 url 的时候, 大家注意这里 lesson 6 中是双引号, Sunny 在注入的时候写成了单引号在注入, 结果尝试好多次都没有成功显示错误信息, 搞得 Sunny 都快怀疑人生了, 最后才发现的这个惯性问题:
id=1"union select 1,2,3 from (select count(*),concat_ws(':',(select version()),floor(rand()*2)) as a from information_schema.columns group by a) x#
得到我们想要的结果:
图片. png
童鞋们将其中的字查询部分替换成自己想要查找的内容的 sql 语句即可. 好了, 今天的课程到此结束了, 双查询注入也基本讲完了, 后面讲到盲注的时候, 有些题目还会稍微提一下双查询注入.
有其他思路的童鞋也欢迎评论留言, 有两种方式:
第一种
评论留言
第二种
来源: http://www.jianshu.com/p/5afeeb2e790f