NSSCTF-Web题目16

目录

[GDOUCTF 2023]受不了一点

1、题目

2、知识点

3、思路

[UUCTF 2022 新生赛]ez_upload

1、题目

2、知识点

3、思路


[GDOUCTF 2023]受不了一点

1、题目

2、知识点

php代码审计、数组绕过、弱比较绕过

3、思路

打开题目,出现代码,我们进行代码审计

1、

这一段代码的意思是:POST方式上传一个gdou参数和ctf参数,且两个值不能相同,md5加密后的 值和类型要相同(也就是强比较===)

绕过方式:使用数组绕过,因为数组进行md5加密后的值为null(空)

payload:gdou[]=1&ctf[]=2

2、

意思是:上传一个cookie的值为 j0k3r ,然后GET方式上传aaa参数和bbb参数,且aaa和bbb等于114514,但它们的值又不能相同

绕过方式:1、可以使用hackbar进行设置cookie,也可以BP抓包后进行修改cookie,

2、因为aaa和bbb的值是弱比较(也是就==),弱比较的意思简单来说就是只比较数值,不比较类型,也就是说 1==1a ,结果是true,但是1==a1,结果是false,假如字符串前面有数字,则转化后以前面的数值为准。

payload:?aaa=114514&bbb=114514a

设置cookie=j0k3r

3、

意思是:如果GET或者POST方式没有上传flag的值或者上传flag参数的值为'flag',则返回上面两个字符串,重点是foreach()函数,这是一个遍历循环的函数,使用foreach函数遍历$_POST和$_GET数组,$$key用于创建与数组键名相同的变量,变量值为数组的值,‘$key’是数组的键,'$value'是键所对应的值,上面的代码要我们上传flag参数,但是又作了限制,它的值不能为flag,传flag会调用die()函数,这里我们就得利用foreach函数,但是只有flag='flag',echo $flag才会回显flag的值

可以使用POST方式或者GET方式上传,foreach只遍历数组,$_POST[]和$_GET[]就是两个数组

例:1=flag

执行:$_GET as $key => $value

1=flag

这样1这个参数的值就是flag

之后,我们再传入flag变量,值为1(flag=1),但是1所对应的值是flag,这样就变成了flag=flag,也就绕过了flag==='flag'

payload:1=flag&flag=1

总的payload:

得到flag:NSSCTF{16e322cf-d8d2-4c6d-a37d-df03867edb65}


[UUCTF 2022 新生赛]ez_upload

1、题目

2、知识点

文件上传,apache解析漏洞

3、思路

打开题目,我们需要上传一个文件

先上传一个正常的文件

告诉我们上传的路径

接着上传一个php文件

做了限制,这里我们抓包,看看大小写这些可不可以绕过

结果不行,看到响应包的数据

这里的apache版本是2.4.10,apache存在一个解析漏洞,影响范围:2.4.0~2.4.29版本

简单来说就是apache可以解析文件后缀名后的多个点,例如xxx.jpg.php.png

会根据Content-Type的类型进行比对,从右到左

所以我们可以利用这一个漏洞,详细原理参考:文件解析漏洞——Apache文件解析漏洞_apache解析漏洞-CSDN博客

上传成功,我们访问一下页面

phpinfo()代码正常执行,说明一句话木马的代码也可以执行,使用中国菜刀进行连接

得到flag:NSSCTF{This_is_start_web_D0g}


这篇文章就先写到这里了,哪里不懂的或者哪里不足的欢迎指出

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值