RCE
文章平均质量分 62
C1yas0
这个作者很懒,什么都没留下…
展开
-
使用$PATH环境变量绕过字符串过滤
echo ${PATH:5:1}${PATH:11:1}在这里插入图片描述${PATH:5:1}${PATH:11:1} 1相当于ls 1${PATH:i,1}当时i<0,${PATH:i,1}相当于:$PATH当0<i<60时i${PATH:i,1}0/1u2s3r4/5l6o7c8a9l10/11s12b13i14n15原创 2021-07-27 15:34:33 · 303 阅读 · 0 评论 -
RCE绕过之无参数RCE
什么是无参数函数RCE我们常用eval($_GET['code']);来实现一句换木马和getshell但是如果开发者进行了过滤if(';' === preg_replace('/[^\W]+\((?R)?\)/', '', $_GET['code'])) { eval($_GET['code']);}那么我们就无法使用参数,也就无法通过正则的校验在此过滤条件下我们只能执行如下格式的函数a();a(b());不可使用a('abc');①getenv()使用get原创 2021-07-23 14:54:27 · 1387 阅读 · 0 评论 -
RCE绕过之无数字字母getshell
无数字字母getshell①取反php可以对汉字取反获得乱码,但大多数会包含一个字母,例如你字取反为B_其中第二位就是大写字母B,所以可以通过这种方法获得字母B这里使用羽师傅的脚本<?php//在命令行中运行/*author yu22x*/fwrite(STDOUT,'[+]your function: ');$system=str_replace(array("\r\n", "\r", "\n"), "", fgets(STDIN)); fwrite(STDOUT,'[+]you原创 2021-07-23 13:43:05 · 1847 阅读 · 1 评论 -
RCE绕过之GET命令执行
Perl中open命令执行(GET)①使用GET读取文件如果GET后面跟路径的话,可以直接获取文件或目录内容GET /root/1010/1GET /root/1010/1/flag.php读取根目录GET /②使用GET执行命令GET底层实现使用的是open函数,而open函数可以执行命令,所以我们可以用GET来执行命令Perl在线工具open(FD,"|ls");print<FD>;当GET使用file协议的时候就会调用到perl的open函数lsGE原创 2021-07-23 13:39:20 · 573 阅读 · 1 评论 -
RCE绕过之关键词绕过
过滤cat,flag等关键词①代替more:一页一页的显示档案内容less:与 more 类似head:查看头几行tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示tail:查看尾几行nl:显示的时候,顺便输出行号od:以二进制的方式读取档案内容vi:一种编辑器,可以查看vim:一种编辑器,可以查看sort:可以查看uniq:可以查看file -f:报错出具体内容sh /flag 2>%261 //报错出文件内容②使用转义符ca\t /fl\ag原创 2021-07-23 13:32:25 · 1539 阅读 · 1 评论 -
RCE绕过之无回显
①shell_exec等无回显函数。判断方法:ls;sleep(3)利用:Ⅰ.复制,压缩,写shell等方法copy flag.php flag.txtmv flag.php flag.txtcat flag.php > flag.txtⅡ.压缩方法tar cvf flag.tar flag.php #tar压缩tar zcvf flag.tar.gz flag.php #tar解压zip flag.zip flag.php #zip压缩unzip flag.原创 2021-07-23 13:26:25 · 2993 阅读 · 1 评论 -
RCE绕过之字符长度受限
有事我们的命令长度可能受限,这时我们可以使用touch来生成文件,然后将生成的文件名拼凑成一句命令,最后执行,达到目的<-- cat flag.php -->替换:touch "hp"touch "g.p\\"touch "la\\"touch "t f\\"touch "ca\\"ls -tls -t >a 将 ls -t 内容写入到a文件中sh a\是指换行ls -t将文件按时间排序输出sh命令可以从一个文件中读取命令来执行返回主页...原创 2021-07-23 13:21:56 · 1130 阅读 · 0 评论 -
RCE函数利用
1.代码注入①eval()eval ( string $code ) : mixed说明:eval()把字符串code 作为PHP代码执行。Caution函数eval()语言结构是非常危险的,因为它允许执行任意PHP代码。它这样用是很危险的。如果您仔细的确认过,除了使用此结构以外别无方法,请多加注意,不要允许传入任何由用户提供的、未经完整验证过的数据。PS:传入的必须是有效的 PHP 代码。所有的语句必须以分号结尾。return 语句会立即中止当前字符串的执行。代码执行的作用域是调用 eva原创 2021-07-22 21:14:48 · 1113 阅读 · 2 评论 -
RCE(远程代码执行漏洞)原理及漏洞利用
作用RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。原理一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口。比如我们常见的路由器、防火墙、入侵检测等设备的web管理界面上。一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。 如果,设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交“意想不到”的命令,从而让后台进行执行,从原创 2021-07-19 13:02:39 · 38678 阅读 · 10 评论 -
RCE总结
一、RCE的定义RCE英文全称:remote command/code execute分为远程命令执行ping和远程代码执行evel。漏洞出现的原因:没有在输入口做输入处理。我们常见的路由器、防火墙、入侵检测等设备的web管理界面上一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。其实这就是一个接口,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统,这就是RCE漏洞。二、RCE利用原创 2021-07-22 21:12:32 · 5936 阅读 · 0 评论 -
使用~$()构造数字
当数字被过滤时,我们可以使用shell语句~$()来构建我们想要的数字${_}="" #${_}会输出上一次的执行结果$((${_}))=0$((~$((${_}))))=-1例子:构造一个数字5先输出六个-1echo $((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))再取反echo ~$(($((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())).原创 2021-07-22 20:49:46 · 415 阅读 · 0 评论