flag在源码的注释里
改一下text文本框的最大输入位数>1即可
GET方式传参即可
post方式传参即可
$num=$_GET['num'];
if(!is_numeric($num))
{
echo $num;
if($num==1)
echo 'flag{**********}';
}
这题要求传参num不能是数字,而且num=1,一开始没有什么思路,认为是弱类型的绕过,传了true进去,发现无效,问了一下度娘,发现在数字后面加上%00截断,is_numeric()函数就不能识别为数字了…
payload:
123.206.87.240:8002/get/index1.php?num=1%00
这题疯狂弹出对话框,阻止以后查看源码,果然全是alert弹窗,在最下面的注释里发现了一大串编码,不太认识:
问了一下度娘,发现是unicode,直接在线解码即可
进入windows/system32/drivers/etc/hosts中添加123.206.87.240 flag.baidu.com,然后直接访问域名即可
这题如何让他停下?直接bp抓包拦截,然后一次一次执行,go了几次发现flag
REQUEST默认情况下包含了 _GET,\_GET,_GET,_POST 和 _COOKIE的数组。这题的最终目的就是要看到∗∗flag.php∗∗里的内容,eval是执行\_COOKIE 的数组。 这题的最终目的就是要看到**flag.php**里的内容,eval是执行_COOKIE的数组。这题的最终目的就是要看到∗∗flag.php∗∗里的内容,eval是执行a里的内容,所以直接file(‘flag.php’)就可以
payload:
http://123.206.87.240:8003/?hello=file(%27flag.php%27)
这题花了点时间研究了一下
flag In the variable !
理解1:preg_match()是正则表达式的匹配,/^表示开始,KaTeX parse error: Expected 'EOF', got '\w' at position 12: /表示结束,结束字符 \̲w̲包含\[a-z,A-Z,,0-…args表示的是以args表示的是以args表示的是以args为变量名的变量;
理解3:GLOBALS[]包含正在执行脚本所有超级全局变量的引用内容;开头就提示flag在变量里,所以只要看看变量里都放了些什么就可以了,args=GLOABLS就可以将GLOBALS[]包含正在执行脚本所有超级全局变量的引用内容;开头就提示flag在变量里,所以只要看看变量里都放了些什么就可以了,args=GLOABLS就可以将GLOBALS[]包含正在执行脚本所有超级全局变量的引用内容;开头就提示flag在变量里,所以只要看看变量里都放了些什么就可以了,args=GLOABLS就可以将args解析成args解析成args解析成GLOBALS,var_dump打印变量的相关信息
这样就可以显示出所有变量的内容
payload:
http://123.206.87.240:8004/index1.php?args=GLOBALS
提示是jspfuck,查看源代码,复制下来放到google控制台跑一下
发现了ctf{whatfk},提交提示离答案非常接近,要求是CTF头,所以全部大写提交,成功…
打开发现什么都没有…查看源代码也没有什么东西,F12查看一波也没有什么发现,无奈之下用bp截取之后运行…以为有点难,没想到是水题…
嗯,挺漂亮的网页,查看半天也没发现什么奇怪的东西,就扫一波后台目录
发现了index.php和shell.php,打开shell.php如图:
发现需要输入密码,bp抓一波,然后选择passwords字典暴力破解
降序排列一波发现1110匹配项
这题不太会,找到源码中的base64编码
解码以后是test123,输入admin为用户名,test123为密码,发现不能访问,IP禁止访问,请联系本地管理员登录,也就是说需要本地登录才可以进去,所以就尝试着bp抓一波包,从大佬的wp中了解到这题需要伪装成本地访问才可以通过,伪装本地访问的方法就是在headers里面添加如下http头:
X-Forwarded-For:127.0.0.1
弹出flag:
解码后:
function checkSubmit()
{
var a=document.getElementById("password");
if("undefined"!=typeof a)
{
if("67d709b2b54aa2aa648cf6e87a7114f1"==a.value)
return!0;
alert("Error");
a.focus();
return!1
}
}
document.getElementById("levelQuest").onsubmit=checkSubmit;
将67d709b2b54aa2aa648cf6e87a7114f1这一串数字提交到表单里直接出flag…(什么鬼玩意儿)
文件包含题,和nctf的文件包含如出一辙;
payload:
http://123.206.87.240:8005/post/index.php?file=php://filter/read=convert.base64-encode/resource=index.php
解析为base64编码,解码后发现flag
进去发现需要输入5位密码,就直接用burp爆破一下,先设置五位数字爆破
等一下发现出现length不一样的项目,直接找到了flag
这题你点一下鼠标数值就会加一,
查看源代码发现只要点击鼠标就会clicks++,method是POST,所以可以直接post一个clicks=1000000过去就可以了
得到flag
提示备份直接进入index.php.bak,发现如下,是一个弱类型的MD5绕过,构造MD5值为0e开头的值就可以了
去掉第一个字符后,用’'替换key,也就是直接去掉key,然后字符串解析到变量,构造payload:
http://123.206.87.240:8002/web16/?kekeyy1=s878926199a&kekeyy2=QNKCDZO
持续更新…
【注】参考:https://blog.csdn.net/Gar_denia/article/details/86760631