过狗一句话(bugku)

       昨天写了个关于一句话木马的题,今天上午百度了一个上午理解一句话木马,感jio还是有点懵逼,于是想写一下题来理解一下下……不过虽然这道题题目叫过狗一句话,但似乎跟我想象的不大一样emmmmm

----------------------------------------------------------不废话不废话----------------------我是分割线分割线-----------------------------------------

题目中给了一小段php代码:

过狗一句话(bugku)_第1张图片

然后我经历了点开题目链接、查看源代码、扫描目录后也并没有发现其他的hint,于是……老老实实分析这段代码:

这里explode函数把字符串poc按#分隔开并映到poc_1数组中去;

然后poc_2再把他们连接起来,总的来说就是把poc中的#去掉,变成一个新的字符串赋值给poc_2;

可以看出,poc_2是assert,然后我们来看最后一句话,它现在变成了一个函数,即:

    assert($_GET['s'])

而assert函数功能跟eval类似,可以把里面的内容当作代码来执行,考虑扫描目录下的文件,构造payload:

?s=print_r(scandir('./'));可以把当前目录下的文件或者目录以数组的形式显示出来;

其中123.php、index.php、test.php都是用御剑扫描出来过并没有发现什么东西的,但是有一个十分可疑的f14g.txt,于是访问:得到flag:

过狗一句话(bugku)_第2张图片

你可能感兴趣的:(Web学习笔记,Bugku之Web)