a.文件表单提交
b.生成临时文件(读取临时文件信息)
c.后端语言判断该文件是否合规
d.合规则保存文件
1.在phpstudy搭建的站点www目录下写入一个php文件,访问该网站下的php文件成功:
命令执行函数:system()、Exec()、 Shell_exec()
passthru(): 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上
1.如url中输入:XXXX/1.php?a=net user mqu sss /add
//net user mqu sss /add 添加新用户到系统:mqu为用户名 sss为密码
2. 如url中输入:XXXX/1.php?a=dir
3. 如url中输入:XXXX/1.php?a=ipconfig,回显ip
eval函数: eval("phpcode");
eg:
结果:go665
eg1:
3.已知待攻击ip即一句话木马url路径,可以通过蚁剑连接,从而获取到该主机的后台任务管理部分,并可以对其文件进行增删改查(前提是二台主机连接同一个网络),特别注意在dvwa上传时会出现…/…/xxx/xxx/2.php上传成功提示,此时蚁剑要连接的url路径则是要在原路径中返回两个上层目录后的url
1.一句话木马需要借助客户端等,而大马可以直接通过浏览器访问
2.一句话木马代码量小,大马代码量大
3.一句话木马隐蔽性强可以通过隐藏特征而绕过,而大马代码量更大往往需要编码加密的形式绕过
1.客户端校验: javascript校验->(绕过)修改客户端代码/上传过程修改数据包
php文件后缀名改为jpg,抓包后将后缀名又改为php,经查jpg的mime类型为image/jpg,所以将Content-Type类型改为image/jpeg
2.服务端校验:
a.MIME类型->(绕过)上传过程修改MIME类型
法1.上传一个含有一句话木马的php文件,经查jpg的mime类型为image/jpg,所以将Content-Type类型改为image/jpeg,重放后上传成功。
法2.php文件后缀名改为jpg,抓包后得的Content-Type类型就为image/jpeg,此时将后缀名为jpg改为php,重放后上传成功。
b.扩展名校验->(绕过)特殊扩展名/截断上传/解析漏洞等
解析漏洞(中间件存在漏洞):
1.文件路径为/1.asp/ ,文件名为1.jpg,则访问/1.asp/1.jpg时1.jpg会被当作asp文件解析。
2.分号后的内容解析式会被忽略:如1.php;1.jpg文件可以被当作php文件解析。
3.当有在白名单中但中间件无法解析的后缀名时,中间件会从后向前解析,如 1.php.7z ,中间件无法解析7z,则该文件会被当作php文件解析。
4./XX.JPG/任意文件名.php 文件会被当作php文件解析。
c.文件内容->(绕过)上传图片木马/代码混淆
上传图片木马(edjpgcom可以生成图片马):
1.上传图片马(后缀名为jpg)后不能解析,则将后缀名进行更改(双写php):如下图1
2.(结合截断注入):上传图片马后将后缀名改为php,此时mime类型为image/jpg,后端又不允许上传php文件,所以把后缀名改为php%00.jpg,然后ctrl+shift+u编码后(%00写入了hex编码)再发包即可上传成功。如下图2
d.黑名单检测->(绕过)php大小写绕过/后缀名为黑名单以外的脚本类型/截断绕过
截断绕过(00截断、冒号截断):后缀名以小数点或空格结尾,可以绕过前端且windows保存时会自动去除这些符号
eg如图片马中2例
入侵方式: sql注入+文件上传: phpmyadmin; sqlmap 跑–os-shell
看ip有无高危漏洞:nessus扫描即可