一、题目链接
https://ctf.bugku.com/challenges/detail/id/87.html?id=87&
二、解法步骤
打开网页,发现自动给url上了参数:,
line的值为空,filename是base64加密格式,解密后为:key.txt。
首先尝试更改line=1,、2、3、4;发现无反应,然后尝试访问用filename访问index.php。因为直接访问地址会跳转上上述页面,猜测参数的值会触发302重定向。
于是filename=aW5kZXgucGhw
,
页面无显示,查看源代码:,发现第一行有代码显示。猜测line控制显示代码行数:
line= 2:
接着用bp爆破line 从1~30试试,然后把每行的代码拼接起来:
通过代码审计,需要我们传入cookie的参数margin=margin,使得file_list数组存储(keys.php),最后传入filename=keys.php的base64编码即可:
payload:index.php?line=&filename=a2V5cy5waHA=
最后在源代码中找到flag:
三、总结
本题考察是代码审计。破题点是要尝试将filename =index.php传入,同时结合源代码回显得出line参数的作用,通过bp爆破得到完整的代码,最后通过代码审计来传入合适的Cookie与filename得到flag。总的来说不难。
标签:Web,Cookies,源代码,index,代码,filename,CTF,line,php From: https://www.cnblogs.com/miraclewolf/p/17641066.html