http://ctf5.shiyanbar.com/web/9
右键查看源代码被禁止,
直接F12看。
<html>
<head>
<meta charset="utf-8">
<title>404</title>
</head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
<script language="javascript">
<!--
if (window.Event)
document.captureEvents(Event.MOUSEUP);
function nocontextmenu(){
event.cancelBubble = true
event.returnValue = false;
return false;
}
function norightclick(e){
if (window.Event){
if (e.which == 2 || e.which == 3){
alert('禁止查看源代码!');
return false;}
}
else
if (event.button == 2 || event.button == 3){
event.cancelBubble = true
event.returnValue = false;
return false;
}
}
document.oncontextmenu = nocontextmenu; // for IE5+
document.onmousedown = norightclick; // for all others
//-->
</script>
<!-- 粗心的程序员,写完代码也不删。-->
</body>
</html>
没用!
url后加index.php试一下,没反应,然后试一下index.php.bak得到了
$flag='xxx';
extract($_GET);
if(isset($shiyan)){
$content=trim(file_get_contents($flag));
if($shiyan==$content){
echo'ctf{xxx}'; }
else{
echo'Oh.no';}
}
根据代码得知要提交一个flag一个shiyan并验证相等。
变量覆盖漏洞,提交flag=1&shiyan=即可得到加密后的flag,明显是凯撒位移加密。
if(
shiyan==
content)这个才是需要满足的相等条件,$content是从文件名为1的文件中读取到的内容,而文件名为1的文件不存在,读取的结果为空
关于.bak,是备份文件的后缀,推测是index.php不存在了,但是留了备份。
第一次见,提供个以后解决问题的思路。