常见web安全漏洞(2)

上一篇 / 下一篇  2012-11-05 18:58:08 / 个人分类:安全测试

3.sqlInjection
SQL injection攻击包括插入或“注入”的SQL查询,通过输入数据从客户端的应用程序。一个成功的SQL注入攻击可以从数据库中阅读敏感数据,修改数据库数据(插入/更新/删除) ,执行管理处业务的数据库(如关闭数据库管理系统) ,收回的内容,一个给定的文件现有的数据库管理系统文件系统,在某些情况下,发出命令的作业系统。
漏洞形成原因:
1). 在应用程序中使用字符串联结方式组合SQL指令。
2). 在应用程序链接数据库时使用权限过大的帐户(例如很多开发人员都喜欢用sa(内置的最高权限的系统管理员帐户)连接Microsoft SQL Server数据库)。
3). 在数据库中开放了不必要但权力过大的功能(例如在Microsoft SQL Server数据库中的xp_cmdshell延伸预存程序或是OLE Automation预存程序等)
4). 太过于信任用户所输入的数据,未限制输入的字符数,以及未对用户输入的数据做潜在指令的检查。
攻击方式:
数值:or 1=1   or 1=2 
字符串:'or' 1'='1   'or '1'='2 
可能造成的伤害:
1). 数据表中的数据外泄,例如个人机密数据,帐户数据,密码等。
2). 数据结构被黑客探知,得以做进一步攻击(例如SELECT * FROM sys.tables)。
3). 数据库服务器被攻击,系统管理员帐户被窜改(例如ALTER LOGIN sa WITH PASSWORD='xxxxxx')。
4). 取得系统较高权限后,有可能得以在网页加入恶意链接以及XSS。
5). 经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统(例如xp_cmdshell "net stop iisadmin"可停止服务器的IIS服务)。
6). 破坏硬盘数据,瘫痪全系统(例如xp_cmdshell "FORMAT C:")。

防范方法
1). 在设计应用程序时,完全使用参数化查询(Parameterized Query)来设计数据访问功能。
2). 在组合SQL字符串时,先针对所传入的参数作字符取代(将单引号字符取代为连续2个单引号字符)。

4.Ajax Security
待完善...
5.Javascript. Security
待完善...
6.Access Control
待完善...
7.Flash Security
待完善...
8.Rss Security
9.Brute force attack
待完善...
10.Local File Iclusion
待完善...
11.Remote File Iclusion
待完善...

TAG: SQL注入 安全 sql注入

 

评分:0

我来说两句

Open Toolbar