ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

【CTF-SHOW】无字母数字命令执行

【CTF-SHOW】无字母数字命令执行 打开题目直接输入命令发现无法执行使用之前的字符串取反方法也无法绕过题目分析以Form表单形式提交使用curl -F codels [题目地址]发现可以正常处理尝试上传文件网页仍然可以正常返回意味着目标可能会接收这个文件即使页面中没有文件上传功能可以考虑使用文件上传通配符注入来执行代码1.在php中上传的文件会临时保存在/tmp/phpXXXXXX其中XXXXXX是随机大小写字母如果上传后没有使用move_uploaded_file()移动位置那么就会在脚本运行结束后自动删除上传的文件即HTTP请求返回后文件就会被删除2.在Bash中.(点)等于source即在当前终端进程中执行文件中的代码例如 . test.sh就相当于source test.sh意思是在当前终端内执行test.sh文件中的代码3.在Linux中可以使用以下统配来匹配文件? 代表1个任意字符* 代表任意数量的任意字符[^x] 代表这个位置不是字符x[a-z] 代表这个位置的字符在a-z范围内ASCII码我们使用Form表单的形式同时提交code参数并上传bash脚本文件code参数通过使用.句点加通配符来匹配并运行我们上传的脚本我们可以通过/???/?????????来匹配文件前三个?用来匹配字符tmp后九个?用来匹配phpXXXXXX但是这样通常会有多个匹配的文件必须缩小范围使其刚好能够匹配到我们上传的文件最后使用的通配符为/???/????????[-[] 意思是匹配以大写字母结尾的文件大写字母的ASCII码范围在和[中间由于上传的文件名称是随机生成的实际操作中可能无法一次成功需要反复调整并尝试漏洞利用创建一个文件list.sh内容就是 ls然后通过curl以表单形式同时提交code参数并上传文件curl -F code. /???/????????[-[] -F filelist.sh [题目地址]在返回结果中可以看到当前目录中存在flag.php修改list.sh内容为 cat flag.php 再执行一遍相同的命令即可得到flag参考资料无字母数字webshell之提高篇 | 离别歌AI渗透测试只用3个符号就拿下了服务器揭秘无字母数字RCE的终极玩法_wx68fc435ee4240的技术博客_51CTO博客
返回列表