当前位置:网站首页>buuctf部分题目wp
buuctf部分题目wp
2022-06-22 06:57:00 【[email protected]】
[SUCTF 2019]EasySQL
这道题目开始时我以为是万能密码,所以一开始全部是no,试着输入flag还是同样的结果

尝试了单个1后发现出现了反应,输入2也是

但是输入1'后没有 又没有了反应,不显示报错信息,所以无法使用报错注入;使用order by同样还是no,所以联合查询就行不通了。
根据页面是否回显分成两类
- 显注:前端页面可以回显用户信息,比如 联合注入、报错注入。
- 盲注:前端页面不能回显用户信息,比如 布尔盲注、时间盲注。
试下盲注,布尔盲注
1 and length(database())>=1#

1' and length(database())>=1#

放弃布尔盲注,时间盲注试试,还是同样的结果,尝试堆叠注入,终于有了反应
1;show databases# 
看表
1;show tables# 
发现了flag,但是查看表中内容时又变成了no,看了别人wp才明白是怎么回事
这道题目需要我们去对后端语句进行猜测
1、输入非零数字得到的回显1和输入其余字符得不到回显=>来判断出内部的查询语句可能存在有||
2、也就是select 输入的数据||内置的一个列名 from 表名=>即为
select post进去的数据||flag from Flag(含有数据的表名,通过堆叠注入可知)
此时的||起到的作用是or的作用
解法1
内置的sql语句为
sql=“select”.post[‘query’]."||flag from Flag";
如果$post[‘query’]的数据为*,1,sql语句就变成了
select *,1||flag from Flag
也就是直接查询出了Flag表中的所有内容
select *,1 from Flag
直接输入*,1得出flag

解法2
输入的内容为
1;set sql_mode=pipes_as_concat;select 1
查询语句变为:select 1;set sql_mode=PIPES_AS_CONCAT;select 1||flag from Flag;

sql_mode
sql_mode是MySQL数据库中的一个环境变量,定义了MySQL应该支持的SQL语法、数据校验等。设置sql_mode为PIPES_AS_CONCAT, 将"||"视为字符串的连接操作符而非或运算符,和字符串的拼接函数concat相类似。concat函数用于将多列查询结果连接为一个字符串。
当 sql_mode 设置了 PIPES_AS_CONCAT 时,|| 就是字符串连接符,相当于CONCAT() 函数
当 sql_mode 没有设置 PIPES_AS_CONCAT 时 (默认没有设置),|| 就是逻辑或,相当于OR函数sql_mode 是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入,所以必须将这个值设置为严格模式。
sql_mode常用来解决的几类问题:
1、通过设置sql_mode,可以完成不同严格程度的数据校验,有效地保证数据准确性;
2、通过设置sql_mode为宽松模式,来保证大多数sql符合标准的sql语法,这样应用在不同数据库之间进行迁移时。则不需要对业务sql进行较大的修改;
3、在不同数据库之间进行数据迁移之前,通过设置sql_mode可以使MySQL上的数据更方便地迁移到目标数据库中。
参考博客
[RoarCTF 2019]Easy Calc
输入1+1
没看出来有什么东西,所以观察源码,发现waf和calc.php

WAF的主要功能:
WAF主要是通过内置的很多安全规则 来进行防御。
可防护常见的SQL注入、XSS、网页篡改、中间件漏洞等OWASP TOP10攻击行。
当发现攻击后,可将IP进行锁定,IP锁定之后将无法访问网站业务。
也支持防止CC攻击,采用集中度和速率双重检测算法。
访问calc.php页面
blacklist意思是黑名单,所以猜测它包含的是被过滤的字符 ,题目利用waf过滤了num参数中的一些字符,那么我们就需要利用php的字符串解析特性绕过waf。
PHP需要将所有参数转换为有效的变量名,因此在解析查询字符串时,它会做两件事:
1.删除前后的空白符(空格符,制表符,换行符等统称为空白符);
2.将某些字符转换为下划线(包括空格);
例:假如waf不允许num变量传递字母, 那么我们可以在num前加个空格,这样waf就找不到num这个变量了,因为现在的变量叫" num",而不是"num"。但php在解析的时候,会先把空格给去掉,这样我们的代码还能正常运行,还上传了非法字符。
由鉴于他过滤了单引号和双引号,我们无法直接传参。
需要用到几个函数来构建取得目录:
- var_dump() — 可以将变量的内部信息打印出来,可以打印出数组
- scandir() — 传入目录参数,返回传入目录的文件及文件夹
- chr() — 传入数字可以将ASCII码解析为字符串
- readfile() — 传入文件名作为参数可以读取文件内容
- file_get_contents — 传入文件名作为参数可以读取文件内容
char(47)也就是ascii码中的 '/' ,构造payload,发现有以flag命名的文件
/calc.php? num=1;var_dump(scandir(chr(47)))

所以要想办法读取该文件,构造payload
calc.php? num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

找到flag。
剩下的等我实训完了再写,好烦
版权声明
本文为[[email protected]]所创,转载请带上原文链接,感谢
https://blog.csdn.net/zhhhb1005/article/details/125350041
边栏推荐
- What exactly is the open source office of a large factory like?
- Advanced usage of setting breakpoints during keil debugging
- [CPU design practice] fundamentals of digital logic circuit design (I)
- OpenGL - Draw Triangle
- [openairinterface5g] ITTI messaging mechanism
- Laravel excel 3.1 column width setting does not work
- Tpflow V6.0.6 正式版发布
- College entrance examination is a post station on the journey of life
- DL and alignment of spatially resolved single cell transcriptomes with Tangram
- How can we effectively alleviate anxiety? See what ape tutor says
猜你喜欢

KV260的PMOD接口介绍
![Leetcode: interview question 08.12 Eight queens [DFS + backtrack]](/img/d0/e28af1a457f433b35972fd807b8ad7.png)
Leetcode: interview question 08.12 Eight queens [DFS + backtrack]
![[write CPU by yourself] implementation of exception related instructions](/img/79/f2d5e04cfe60e8ae6ea735787ae88b.jpg)
[write CPU by yourself] implementation of exception related instructions

深度解析Optimism被盗2000万个OP事件(含代码)

Introduction to 51 Single Chip Microcomputer -- the use of Proteus 8 professional

【Rust 日报】2022-01-23 WebAPI Benchmarking

Advanced usage of setting breakpoints during keil debugging

Introduction to 51 Single Chip Microcomputer -- digital tube

Blog add mailbox private message shortcut

Cesium加载3D Tiles模型
随机推荐
C skill tree evaluation - customer first, making excellent products
Introduction to 51 single chip microcomputer - matrix key
仙人掌之歌——进军To C直播(2)
SQL injection vulnerability (XII) cookie injection
仙人掌之歌——上线运营(4)
迪进面向ConnectCore系统模块推出Digi ConnectCore语音控制软件
[openairinterface5g] project directory structure
Introduction to 51 Single Chip Microcomputer -- the use of Keil uvision4
《数据安全实践指南》- 数据采集安全管理
[openairinterface5g] RRC NR resolution (I)
Correspondence between pytorch and torchvision
C语言——深入理解数组
The song of cactus - marching into to C live broadcast (1)
JS中如何阻止事件的传播
[meta learning] classic work MAML and reply (Demo understands meta learning mechanism)
Introduction to 51 single chip microcomputer - LED light
流程引擎解决复杂的业务问题
Languo technology helps the ecological prosperity of openharmony
Tpflow V6.0.6 正式版发布
Chrome install driver