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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值