从今天开始积累

1.文件名可能很奇怪,比如末尾是 ? 会误以为是传参 以 hint.php? 整体为文件夹名

 后面很上相对路径就会起到迷惑人的作用 hint.php?/../../../../ffffllllaaaagggg

2. tornado模板注入

  $output = $twig->render("Hello {$_GET['name']}");  // 将用户输入作为模版内容的一部分

  效果就像是直接 解析/执行 了传参  比如传入{{2*10}} 解析出来就是20

  这里如果注入{{handler.settings}} 就可以出cookie

  记忆:cookie在handler.settings

3.Unicode欺骗

  nodeprep.prepare 要求Twisted版本老 作用是大写转小写

  当用其转化时,第一步转化为A,然后才是a   即 ᴬ->A->a

  当大小写敏感的时候可以用来修改目标内容即附加内容

  至于这个玩意怎么打出来的。。。搜搜复制吧

4.条件竞争(只是看到过未实践)

  https://blog.csdn.net/weixin_44677409/article/details/100733581     解法三

  大致思路是:对于同一个username变量,两个线程同时进行,一个修改密码,一个错误登录

  可能有一个时候 登录使用的admin放入username然后进行了另一个线程的修改密码操作

  很玄学。。。

5.简单WAF绕过

  变量前加空格,WAF检查是在url解析前,比如禁止使用'num',而加空格后是' num',不会被查出来。

  之后url解析会把空格去掉,进行正常的赋值

6.scandir()

  scandir()用于列出参数目录中的文件和目录 比如scandir(‘user’)

7.    .user.ini文件

  里面有两项特殊设置

  auto_prepend_file 是在文件前插入

  auto_append_file在文件最后插入(当文件调用的有exit()时无效)

  只有在执行php之前会先执行该文件,可用于文件包含。

  比如在该文件下写:auto_prepend_file=a.jpg     就会在打开某php之前包含a.jpg 

8.    .htaccess文件

  能干很多事情,目前已经学习使用其讲指定后缀文件当做php来解析

  比如把 AddType application/x-httpd-php xxx 这句话写成.htaccess,该目录下的所有.xxx后缀文件都会被当做php解析

  上传漏洞使用它非常方便

9.伪协议

  https://www.cnblogs.com/thenbz3/p/11536779.html

  常用的几种:

  php://filter/read=convert.base64-encode/resource=flag.php    (将flag.php base64加密,配合include就可以显示出base64加密后的代码)

  phar://test.zip/test.txt   (直接访问test.txt文件,可以吧php文件放进压缩包,然后include phar://访问php来getshell)

10.反序列化---class中的private变量

  

<?php

class Name
{
    private $username = 'admin';
    private $password = 100;

    public function __construct($username,$password){
        $this->username = $username;
        $this->password = $password;
    }

    function __wakeup(){
        $this->username = 'guest';
    }

    function __destruct(){
        if ($this->password != 100) 
        {
            echo "</br>NO!!!hacker!!!</br>";
            echo "You name is: ";
            echo $this->username;echo "</br>";
            echo "You password is: ";
            echo $this->password;echo "</br>";
            die();
        }
        
    }
}

?>
View Code

 

  反序列化之后的输出是

  O:4:"Name":2:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";i:100;}

  其实完整的应该是O:4:"Name":2:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";i:100;}

  即类名前后有空字符

11.反序列化----__wakeup的绕过

  当成员属性数目大于实际数目时可绕过wakeup方法(CVE-2016-7124)

  比如将

  O:4:"Name":2:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";i:100;}

  修改为

  O:4:"Name":4:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";i:100;}

12. 修改http头

  Referer表示该网址跳转来源,即come  from。要注意的是它第一个字母是大写

    比如从www.baidu.com访问过来,就是

    Referer:www.baidu.com

  X-Forwarded-For用来表示 HTTP 请求端真实 IP,有时需要你从本地访问就要用

    X-Forwarded-For:127.0.0.1

  User-Agent头,通式为  Mozilla/5.0 (平台) 引擎版本 浏览器版本号

    有时限制只能用某浏览器访问,比如ABBS浏览器,直接修改为

    User-Agent:ABBS

  

posted @ 2020-02-13 20:57  Papayo  阅读(148)  评论(0编辑  收藏  举报