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

      

  • 相关阅读:
    轻松实现WCF服务的构造函数依赖注入
    终于找到在Visual Studio 2010中进行“项目重命名”的有效工具
    让Entity Framework不再私闯sys.databases
    AutoMapper使用笔记
    遭遇IE8下的JavaScript兼容问题
    WCF异步调用中客户端关闭带来的性能问题
    Chrome “False Start” 引起的 Error 7 (net::ERR_TIMED_OUT): The operation timed out
    实战ASP.NET访问共享文件夹(含详细操作步骤)
    Entity Framework 理清关系 基于外键关联的单向一对一关系
    在Firefox中通过JavaScript复制到剪贴板(Copy to Clipboard)
  • 原文地址:https://www.cnblogs.com/lxy8584099/p/12305176.html
Copyright © 2011-2022 走看看