zoukankan      html  css  js  c++  java
  • 从今天开始积累

    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

      

  • 相关阅读:
    494 Target Sum 目标和
    493 Reverse Pairs 翻转对
    492 Construct the Rectangle 构建矩形
    491 Increasing Subsequences 递增子序列
    488 Zuma Game 祖玛游戏
    486 Predict the Winner 预测赢家
    485 Max Consecutive Ones 最大连续1的个数
    483 Smallest Good Base
    Django Form组件
    Django Auth组件
  • 原文地址:https://www.cnblogs.com/lxy8584099/p/12305176.html
Copyright © 2011-2022 走看看