实验室信创平台上几道经典的web-php有关的题目wp

简介: 本内容介绍了多个CTF题目及其解题思路,涵盖正则表达式、PHP函数、代码审计等方面。例如,通过POST提交和正则匹配获取flag,利用PHP的松散比较和数组特性绕过验证,以及通过恢复VIM临时文件和SVN隐藏文件夹获取关键信息。每个题目都提供了详细的解题步骤和相关链接,适合初学者学习和实践。

如法炮制

访问如图,post提交,正则匹配

CTF 正则匹配题目的基础小结_ctf preg_match-CSDN博客

CTF_Web:如何认识并计算一个正则表达式_cft正则-CSDN博客

CTF-WEB:字符串和正则匹配 - 乌漆WhiteMoon - 博客园 (cnblogs.com)

正则表达式在线测试 | 菜鸟工具 (runoob.com)

image.png

trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。

image.png

这是一道简单的WEB

image.png

?password=0

?password[]=true以上都不行

只有下面这个可以

?password[]=1

image.png

绕绕绕!

代码审计

image.png

  • 松散比较:使用两个等号 == 比较,只比较值,不比较类型。
  • 严格比较:用三个等号 === 比较,除了比较值,也比较类型

image.png

ereg()函数搜索由指定的字符串作为由模式指定的字符串,如果发现模式则返回true,否则返回false。搜索对于字母字符是区分大小写的。可见他是过滤掉了--字符的

php中ereg()函数和eregi()函数-字符串对比解析函数-CSDN博客

image.png

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

访问一下这个文件

image.png

代码审计

image.png

发现这个flag不是,应该要提交表单,然后得到正确的flag

由于第一次有ereg()函数,所以不能直接写admin,后面有urldecode

所以可以通过二次url编码绕过

image.png

我建议你放弃

好大一段代码审计

image.png

is_numeric() 函数用于检测变量是否为数字或数字字符串如果指定的变量是数字和数字字符串则返回 TRUE,否则返回 FALSE

count() 函数返回数组中元素的数目。

image.png

这里要令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博客

?foo={"bar1":"2018a","bar2":[[1],1,2,3,4],"a2":["hongya"]}&cat[1][]=%00hongya2017&dog=%00 hongya2017

image.png

你确定你是管理员吗?

刚进来就告诉我们用post请求提交username和password

在burp多试试几种提交方式

会得到很多信息

image.png

image.png

好像是要把cookie的user参数的改为administrator

image.png

还是不行

但是发现把adminstrator加密一下就可以了

base64加密

image.png

简单溢出

image.png

啊,简单提交了个数组就行了

至于以上为什么可以通过数组绕过,请看:
CTF中常见的 PHP 弱类型漏洞总结 - 北极边界安全团队 - 博客园 (cnblogs.com)

php利用数组绕过问题小总结_php 数组绕过-CSDN博客

Anonymous

这题有点难哟,又要涨脑子了哟

BUUCTF:[SUCTF 2018]annonymous_末 初的博客-CSDN博客

HITCON 2017 Baby^h-master-php-2017 分析及复现 - 先知社区 (aliyun.com)

代码审计之create_function()函数 - 卿先生 - 博客园 (cnblogs.com)

编写exp:

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...")

image.png

use_vim

由题意得

使用vim会产生一个.swp结尾的文件或者是.swo

由于是隐藏文件所以前面要加点.

.index.php.swo

vim -r 可以恢复

forgot_something

SVN(subversion)是程序员常用的源代码版本管理软件。在使用 SVN 管理本地代码过程中,使用 svn checkout 功能来更新代码时,项目目录下会自动生成隐藏的.svn文件夹(Linux上用 ls 命令看不到,要用 ls -al 命令),其中包含重要的源代码信息。

相关文章
|
Python
PwnTheBox web 奇葩的题目
PwnTheBox web 奇葩的题目
59 0
|
5月前
|
PHP 数据安全/隐私保护
*CTF 2023 web jwt2struts 题解wp
*CTF 2023 web jwt2struts 题解wp
41 4
|
5月前
|
SQL 前端开发 JavaScript
LitCTF 2023 web wp
LitCTF 2023 web wp
26 0
|
8月前
|
存储 缓存 JavaScript
web前端常见的面试题汇总(一),web前端面试题目
web前端常见的面试题汇总(一),web前端面试题目
|
8月前
|
SQL Python
[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解
[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解
[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解
|
8月前
|
SQL 关系型数据库 MySQL
[第一章 web入门]SQL注入-2 题目分析与详解
[第一章 web入门]SQL注入-2 题目分析与详解
|
8月前
|
SQL 数据库
[第一章 web入门]SQL注入-1 题目分析与详解
[第一章 web入门]SQL注入-1 题目分析与详解
|
8月前
|
存储 Web App开发 前端开发
Web前端面试题目及答案汇总
Web前端面试题目及答案汇总
|
PHP
今天遇到有趣的php引用题目
今天遇到有趣的php引用题目
36 0
|
前端开发 开发工具 git
基于CTFTraining在CTFd部署Web题目
基于CTFTraining在CTFd部署Web题目
280 0
下一篇
开通oss服务