攻防世界----ics-07

拿到题目后,一个一个点开

 攻防世界----ics-07_第1张图片

直接拿到了源码,源码中php部分分成三个

第一部分,判断有没有page这个参数



//从总体上看,这一部分要求传入一个page参数,只要这个page参数不为index.php即可

 第二部分,如果session有值的话,就可以传入两个参数



//整体来说,就是过正则,写一句话木马
//因为那个正则匹配了所有.php结尾的文件,因此我们需要用到解析漏洞

第三部分,实现第二部分的关键,就是在于session是有值的,第三部分是给session赋值的

something wae wrong ! 
"); if($result){//如果上面result有值的话,session就是true,能够进入第二部分 echo "id: ".$result->id."
"; echo "name:".$result->user."
"; $_SESSION['admin'] = True; } ?>

结合上面三个部分,总结就是

1.传入一个page参数,page只要不是等于index.php就好

2.在session为true的情况下,因为没有对con进行过滤,那con直接等于一句话木马即可即

con=

因为对file进行过滤了,所以file需要用到解析漏洞的知识点,file=a.php/.

3.为了满足if的判断,id的值不能为一个正常的整数,需要这样:1a9,1iii9,只要1和9之间有东西(并且不能为一个正常的整数,如199)即可

最后的payload如下

攻防世界----ics-07_第2张图片

这里需要注意一下url,在第二部分中有一个chdir()的函数,这个函数的作用是切换目录

chdir(uploaded)就是切换目录到uploaded,而filename= backup/1.php

所以地址不是 /backup/1.php而是 uploaded/backup/1.php 攻防世界----ics-07_第3张图片

攻防世界----ics-07_第4张图片 

攻防世界----ics-07_第5张图片 

 

你可能感兴趣的:(ctf相关,php,开发语言)