Loading... # 如法炮制 访问如图,post提交,正则匹配 [CTF 正则匹配题目的基础小结\_ctf preg\_match-CSDN博客](https://blog.csdn.net/RABCDXB/article/details/110297313) [CTF\_Web:如何认识并计算一个正则表达式\_cft正则-CSDN博客](https://blog.csdn.net/qq_35493457/article/details/119766314) [CTF-WEB:字符串和正则匹配 - 乌漆WhiteMoon - 博客园 (cnblogs.com)](https://www.cnblogs.com/linfangnan/p/13588411.html) [正则表达式在线测试 | 菜鸟工具 (runoob.com)](https://c.runoob.com/front-end/854/)  trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。  # 这是一道简单的WEB  `?password=0` `?password[]=true`以上都不行 只有下面这个可以 `?password[]=1`  # 绕绕绕! **代码审计**  - 松散比较:使用两个等号 **==** 比较,只比较值,不比较类型。 - 严格比较:用三个等号 **===** 比较,除了比较值,也比较类型  `ereg()`函数搜索由指定的字符串作为由模式指定的字符串,如果发现模式则返回`true`,否则返回`false`。搜索对于字母字符是区分大小写的。可见他是过滤掉了--字符的 [php中ereg()函数和eregi()函数-字符串对比解析函数-CSDN博客](https://blog.csdn.net/shaobingj126/article/details/6861646)  **strpos()查找在字符串中第一次出现的位置:** >> get请求的请求参数是将数据放在config的params中,实际是通过“&”拼接在url上 如果请求参数是数组arr= [1,2,3],get请求不对数组做任何处理,则传递给后端的接口是 "url地址?arr []=1&arr []=2&arr []=3",接口会报错 ,因为**识别不了“ []”这个符号** 需要对数组进行修改,需要通过 qs的stringify ()方法将数组序列化 ,则传递给后端的接口是 “url地址?arr=1&arr=2&arr=3”,接口不会报错 >> 所以传入数组使它报错就能得到flag # 整理一下你的发型 **在响应头的地方发现了特殊参数chechfile:index\_hongya.php** **访问一下这个文件**  代码审计  发现这个flag不是,应该要提交表单,然后得到正确的flag 由于第一次有ereg()函数,所以不能直接写admin,后面有urldecode 所以可以通过二次url编码绕过  # 我建议你放弃 好大一段代码审计  **is\_numeric()** 函数用于检测变量是否为数字或数字字符串如果指定的变量是数字和数字字符串则返回 TRUE,否则返回 FALSE count() 函数返回数组中元素的数目。  **这里要令a[bar1]在is\_numeric判断下为非数字,而又使其大于2017,所以考虑到这里,通过php语言弱类型的特性构造a[bar1]=2018a** **需要**\$**a[bar2]为一个有5个元素的数组,**\$**a**["bar2"](#)也是数组,然后\$**a["a2"]要包含hongya,**\$**a["bar2"]不包含hongya,于是让**\$**a[bar2]=[1],1,2,3,4,**\$**a[a2]为数组**`[“hongya”]`(或者取0或者true) **strcmp()和!==利用数组的方式绕过,eregi则考虑通过%00方式截断** [php利用数组绕过问题小总结\_php 数组绕过-CSDN博客](https://blog.csdn.net/tossxr/article/details/105117036) `?foo={"bar1":"2018a","bar2":[[1],1,2,3,4],"a2":["hongya"]}&cat[1][]=%00hongya2017&dog=%00 hongya2017`  # 你确定你是管理员吗? 刚进来就告诉我们用post请求提交username和password 在burp多试试几种提交方式 会得到很多信息   好像是要把cookie的user参数的改为administrator  **还是不行** **但是发现把adminstrator加密一下就可以了** **base64加密**  # 简单溢出  啊,简单提交了个数组就行了 至于以上为什么可以通过数组绕过,请看: [CTF中常见的 PHP 弱类型漏洞总结 - 北极边界安全团队 - 博客园 (cnblogs.com)](https://www.cnblogs.com/anbus/p/10000571.html) [php利用数组绕过问题小总结\_php 数组绕过-CSDN博客](https://blog.csdn.net/tossxr/article/details/105117036) # Anonymous 这题有点难哟,又要涨脑子了哟 [BUUCTF:[SUCTF 2018\]annonymous_末 初的博客-CSDN博客](https://blog.csdn.net/mochu7777777/article/details/105225558) [HITCON 2017 Baby^h-master-php-2017 分析及复现 - 先知社区 (aliyun.com)](https://xz.aliyun.com/t/1773/) [代码审计之create_function()函数 - 卿先生 - 博客园 (cnblogs.com)](https://www.cnblogs.com/-qing-/p/10816089.html) 编写exp: ```python import requests while True: r=requests.get('http://10.2.0.18/?func_name=%00lambda_1') if 'flag' in r.text: print(r.text) break print("Testing...") ```  # use_vim 由题意得 使用vim会产生一个.swp结尾的文件或者是.swo 由于是隐藏文件所以前面要加点. `.index.php.swo ` vim -r 可以恢复 # forgot_something SVN(subversion)是程序员常用的源代码版本管理软件。在使用 SVN 管理本地代码过程中,使用 svn checkout 功能来更新代码时,项目目录下会自动生成隐藏的`.svn`文件夹(Linux上用 ls 命令看不到,要用 `ls -al` 命令),其中包含重要的源代码信息。 最后修改:2024 年 12 月 17 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 4 如果觉得我的文章对你有用,请随意赞赏