buu-wp(web)

今天这个篇章用来记录在buu平台上做的题,记录wp

[极客大挑战 2019]EasySQL

打开靶机,查看题目

查看源代码只有一个登录框
首先尝试测试是单引号闭合还是双引号闭合
先尝试双引号闭合,发现没有报错

再尝试单引号闭合,发现查询语句报错,说明数据库是单引号闭合

尝试构建万能语句绕过验证,使用单引号型的万能密码

最后得到flag

[极客大挑战 2019]Havefun

首先打开靶机,摁f12查看源代码

如果cat=dog则会输出’syc{cat_cat_cat}’
构建/?cat=dog

得到flag.

[ACTF2020 新生赛]Include

先摁f12查看源代码,发现一个flag.php文件

Include类题目使用php伪协议

用base64解码
Playload
/?file=php://filter/read=convert.base64-encode/resource=flag.php
得到
PD9waHAKZWNobyAiQ2FuIHlvdSBmaW5kIG91dCB0aGUgZmxhZz8iOwovL2ZsYWd7M2U0MmQwYWUtMDU2OC00MmQ1LTllYjktNzkwZTU4ODMxNTIxfQo=
使用base64进行解码得到flag

[GXYCTF2019]Ping Ping Ping

打开靶机

让我们提交一个ip,题目是ping,所以我们ping一下本机地址127.0.0.1在用管道符,加上ls命令

得到两个php文件名,尝试cat flag.php

发现空格被过滤了,进行空格绕过,以下方式可以绕过空格

经过尝试发现$IFS$1可以绕过,构造playload
/?ip=127.0.0.1;ca他$IFS$1flag
结果发现flag也被过滤了

那就查看一下index.php

进行一下代码审计,发现很多符号都过被过滤了,但是发现有一个a变量可以进行替换
所以构造playload/?ip=127.0.0.1;a=g;cat$IFS$1\fla$a.php

得到flag

[SUCTF 2019]EasySQL

打开靶场,首先尝试万能密码,发现不能通过,那么尝试堆叠注入,发现可以进行
首先查询数据库

查询表名

直接查询flag发现不行

回显为nonono
查看一下大佬们的wp。这里大佬猜测的查询语句为:
select $_GET[‘query’] || flag from flag
这里的||在mysql中表示或,如果前一个操作数为真,则不看后面的语句,然后构造payload
*,1

最后得到flag,向大佬学习

[强网杯 2019]随便注

判断闭合方式 先传入一个1

再传入1’

可以判断是单引号闭合
2.判断有没有过滤,输入一个select

发现select|update|delete|drop|insert|where这些词被过滤了
那么首先尝试堆叠注入
1’;show databases– q

再尝试爆表名
1’;show tables– q

发现有两个表,我们依次进行尝试
首先尝试1’;show columns from ‘words’– q

再尝试1’; show columns from 1919810931114514– q

发现了flag

[极客大挑战 2019]Secret File

打开靶场并没有发现有效的信息,摁f12查看

发现一个/Archibe.rppm.php,点开看看

点击按钮发现没有信息,抓包一下看看

发现了一个被诠释的php文件点开看看

开始代码审计,运用PHP伪协议构造filter伪协议

看到出现的字符串是以=结尾的,推测应该是base64编码

最终得到flag

[极客大挑战 2019]Http

首先打开靶机,查看源码

发现一个/Srecret.php文件打开进行查看

他说你不是来自这个地址,根据题目可以想到http协议
进行抓包,更改Referer为这个地址

查看回显,发现他说请使用Syclover浏览器,那么再伪造用户

在查看回显,说你只能在本地阅读
那么我们可以伪造本地ip 127.0.0.1,所以我们可以利用X-Forwarded-For协议来伪造只需要在 header 添加 X-Forwarded-For:127.0.0.1,再次访问,这时得到flag

[极客大挑战 2019]Upload

打开靶场

文件上传类型的,先随便上传点文件进行查看回显

因为是文件上传类型的先上传一个一句话木马尝试一下

上传的php格式的一句话木马病毒被过滤了,所以使用phtml格式的一句话木马病毒

进行抓包

将Content-type处改为image/jpeg,发送发现上传成功

现在需要知道文件的保存路径,一般都是/upload,进行一下访问

查看一下刚才上传的文件,发现flag

[极客大挑战 2019]Knife

打开靶场看到如下信息

菜刀丢了,使用中国菜刀或者中国蚁剑,在这里使用中国蚁剑

添加数据,查看根目录,发现其中有flag文件,点击查看得到flag

flag{cd406a44-5d93-4dc3-982b-19ca714ab97c}

[ACTF2020 新生赛]Upload

打开靶场,看到灯泡提交文件,先随便提交一个文件看看过滤情况

看来是白名单过滤,打开brup进行抓包查看,提交文件

发现并没有抓到包,推测应该是前端认证,提交一句话木马病毒,更改后缀名,查看抓包

进行更改后缀名为php发现不行,推测还有后端验证,那么这种情况下,尝试.phtml文件绕过验证(phtml是php文件的网页解析文件)使用brup抓包一句话木马病毒,用brup进行后缀名的更改,发现最后上传成功了

打开这个链接进行查看

发现为白色证明上传成功,打开中国蚁剑,进行连接

最终在根目录中找到flag文件,得到该题的flag

[ACTF2020 新生赛]BackupFile

打开靶机,backupfile的意思是备份文件的意思
用dirsearch扫描

发现一个index.php.bak的文件,进行下载,发现是一个代码审计

最关键的是

$key = intval($key);
$str = “123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3”;
if($key == $str) {
echo $flag;

因为key==str是一个弱比较,所以只需要令key=123即可
(在PHP中:
= = 为弱相等,即当整数和字符串类型相比较时。会先将字符串转化为整数然后再进行比较。比如a=123和b=123admin456进行= =比较时。则b只会截取前面的整数部分。即b转化成123。所以,这里的a = = b是返回True。)

构造playload/index.php.bak?key=123
得到flag

[RoarCTF 2019]Easy Calc

打开靶机

发现有WAF(Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF))
发现源码中有一个calc.php进行查看

源码有过滤,这里只能输入数字不能输入英文,但是我们要查flag该怎么办

正则匹配:/m 表示多行匹配
PHP字符串解析特性绕过WAF
输入时发现num只能输入数字,输入字符无法解析。
PHP需要将所有参数转换为有效变量名,因此在解析查询字符串时,它会做两件事:1,删除空白字符;2,将某些字符转换为下划线(包括空格)
现在的变量叫“ num”,而不是“num”。但php在解析的时候,会先把空格给去掉,这样代码还能正常运行,还上传了非法字符。

scandir()函数:返回指定目录中的文件和目录的数组

var_dump():输出变量的相关信息

构造playload(在num变量前面加空格绕过认证,scandir(“/“)能够扫描根目录,但过滤了/,那么就要ascii码来绕过

发现了f1agg文件
那么再次构造playload得到flag

[极客大挑战 2019]BuyFlag

打开靶场,查看页面,发现要求必须是学生并且必须钱够买flag
摁ctrl u进行查看源代码发现

进行代码审计,需要POST提交一个password参数,必须是非数字并且为404
进行抓包查看

发现一个user=0将其数字进行更改,改为1时发现登录为学生

以POST方式提交password参数为404a,源代码显示是一个弱比较,所以可以是成为为404并且不是数字
发现登录成功,那么就开始提交money参数,输入钱发现太长,少了则显示钱不足,那么尝试用数组绕过,发现可以,得到flag

[BJDCTF2020]Easy MD5

首先我们打开靶场看到一个查询框,输入任何东西均无回显

查看源代码,看到hint中有提示

发现是sql注入,select * from ‘admin’ where password=md5($pass,true)
password返回值为“or 1”的时候为一个永真的的词条
看了大佬博客,这个可以用ffifdyop绕过,绕过原理是:
ffifdyop 这个字符串被 md5 哈希了之后会变成 276f722736c95d99e921722cf9ed621c,这个字符串前几位刚好是 ‘ or ‘6
而 Mysql 刚好又会把 hex 转成 ascii 解释,因此拼接之后的形式是 select * from ‘admin’ where password=’’ or ‘6xxxxx’,等价于 or 一个永真式,因此相当于万能密码,可以绕过md5()函数。
果然,我们提交之后就绕过了这个,来到了另一个页面

点击ctrl+U查看源代码

开始进行代码审计,发现以get的方式提供一个a和b,a和b的值不相等,但是a和b的MD5的值要相等
这里提供两个QNKCDZO和s878926199a
构造playload
http://37d8016d-643c-4764-8e62-c8a24e224a75.node3.buuoj.cn/levels91.php?a=QNKCDZO&b=s878926199a

来到该页面,继续进行代码审计,要用post提交两个变量,并且是强比较类型,两个变量不相等,但MD5的值要完全相等
MD5有个特点是:如果传入的两个参数不是字符串,而是数组,md5()函数无法解出其数值,而且不会报错,就会得到===强比较的值相等
payload
param1[]=1&param2[]=2即可(用数组的方式来绕过验证)

最终得到flag

[HCTF 2018]admin

打开靶场,发现有一个登录界面

以admin为用户名进行注册,发现该用户名已经被注册了,推测该题为弱口令爆破

用bp进行抓包,导入密码字典进行抓包,发送到intruder进行爆破

发现123的返回值长度不一样,那么这个就应该是密码了

登录成功得到flag

[MRCTF2020]你传你🐎呢

打开靶机

先上传一个一句话木马
并且抓包

上传成功,但传入的是一个jpg文件,我们需要将他转成php文件
所以上一个htaccess文件写入SetHandler application/x-httpd-php

连接蚁剑

在根目录下找到flag文件

得到flag

[ZJCTF 2019]NiZhuanSiWei

打开靶场

进行代码审计,首先第一个绕过让提交text,其值为welcome to the zjctf
我们可以用data伪协议来进行提交,并且以防万一进行一个base64编码
最终构造playload为
?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=

绕过成功,进行第二个绕过,include函数,并且有useless.php的提示,所以用php://fillter伪协议进行绕过
构建playload
?text=data://text/plain,welcome to the zjctf&file=php://filter/read=convert.base64-encode/resource=useless.php

发现绕过成功,对回显进行解码得到

在本地进行序列化操作

file)){ echo file_get_contents($this->file); echo "
"; return ("U R SO CLOSE !///COME ON PLZ"); } } } $a=new Flag(); echo serialize($a); ?>

序列化后得到

O:4:”Flag”:1:{s:4:”file”;s:8:”flag.php”;}

构造playload:
?text=data://text/plain,welcome to the zjctf&file=useless.php&password=O:4:”Flag”:1:{s:4:”file”;s:8:”flag.php”;}

绕过成功,摁f12查看,得到flag

[MRCTF2020]Ez_bypass

首先打开靶场

太乱了,摁ctrl+u进行查看

进行代码审计
首先让以GET的方式提交id和gg参数,两个参数不能相等,但md5值要相等并且是一个强比较,所以构造数组进行绕过 id[]=1&gg[]=2

查看回显发现绕过成功

那么进行下一步代码审计,让以POST方式提交一个passwd参数,并且passwd不能是一个数字串,但是是一个弱类型的比较,所以我们构造passwd=1234567a来进行绕过,首先用bp进行抓包,提交参数

查看回显,发现成功,打印出了flag


buu-wp(web)
https://sakula33.github.io/2025/02/07/buu-wp/
作者
sakula33
发布于
2025年2月7日
许可协议