0%

初探安全测试

背景

​ 某天,A:你们Web后台存在安全问题,部分接口存在SQL注入的问题

​ B:…

​ B To C:接口存在SQL注入的问题,你去调研下Sqlmap。

​ C:… emm (⊙_⊙)。

思路梳理

  • 什么是安全问题?应用软件中又存在哪些方面的安全问题?
  • 什么是安全测试?
  • 常见的安全性缺陷和漏洞有哪些?
  • Sql注入,用于进行Sql注入的工具有哪些?

安全问题

​ 现实生活中安全相关话题无处不在,如消防安全、卫生安全、人身安全等等,如:小区楼道中贴着一些禁止电动车在楼道中充电,因为这会存在着引发火灾的安全问题(严重的情况甚至影响到生命危险)。

​ 那么应用软件中也存在安全问题,情况严重时候不仅会造成经济损失,还可能由于大量用户信息被泄漏而导致整个公司崩溃。常见的几种安全问题如下:

  • 信息安全问题:如淘宝、京东中,用户一般都绑定了身份证、银行卡、手机号、家庭住址等个人隐私信息,如果这些信息泄漏给一些不法分子后,就会对一些指定用户进行电信诈骗;
  • 财产安全问题:如很多钓鱼网站,都是通过短信、微信、网页链接等方式模拟正规网页,骗取用户在上面进行操作,导致银行卡密码泄漏而造成财产损失;
  • 权限安全问题:由于权限控制不得当,非公司内部管理员也能通过某些方式对公司的私密信息进行操作,最终导致整个公司隐私泄漏或者信息错误。

安全测试

​ 个人理解安全测试应该是 一个识别应用程序潜在的安全性缺陷的过程,如:保证用户对数据或业务功能的访问,在预期的安全性情况下,操作者只能访问应用程序的特定功能、有限的数据等。

其它参考:百度–安全测试维基–渗透测试

​ 常用的安全测试手段有:

  • 静态的代码安全测试;
  • 动态的渗透测试;
  • 程序数据扫描。

常见的软件安全性缺陷和漏洞有哪些

由于篇幅有限,暂仅对此次存在 Sql注入 的安全问题详细介绍。

Sql注入

​ 在没有深入之前,对于Sql注入的理解是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,然后获得该接口的返回或者绕过授权。对于存在Sql注入的威胁也仅仅是绕过登录或者获取某些普通数据。

​ 然而通过资料的查询以及自身的Sqlmap实践后,才感觉一阵后怕,比较常见的威胁如下:

  • 猜解后台数据库,这是利用最多的方式,盗取网站的敏感信息。(如果存在Sql注入时,在没有特殊的安全措施下,可以理解数据库里面的所有信息都可以被获取到
  • 绕过认证,列如绕过验证登录网站后台。

​ 具体如何使用Sqlmap达到上面的效果这里就不细说了,网上这块教程比较多(如:Sql注入获取数据库信息)。

Sql注入的步骤

  1. SQL注入点探测

    探测SQL注入点是关键的一步,通过适当的分析应用程序,可以判断什么地方存在SQL注入点。通常只要带有输入提交的动态网页,并且动态网页访问数据库,就可能存在SQL注入漏洞。如果程序员信息安全意识不强,采用动态构造SQL语句访问数据库,并且对用户的输入未进行有效性验证,则存在SQL注入漏洞的可能性很大。一般通过页面的报错信息来确定是否存在SQL注入漏洞。

  2. 收集后台数据库信息。

    不同数据库的注入方法、函数都不尽相同,因此在注入之前,我们先要判断一下数据库的类型。判断数据库类型的方法很多,可以输入特殊字符,如单引号,让程序返回错误信息,我们根据错误信息提示进行判断;还可以使用特定函数来判断,比如输入“1 and version()>0”,程序返回正常,说明 version() 函数被数据库识别并执行,而 version() 函数是 MySQL 特有的函数,因此可以推断后台数据库为MySQL。

  3. 猜解用户名和密码。

    数据库中的表和字段命名一般都是有规律的。通过构造特殊SQL语句在数据库中依次猜解出表名、字段名、字段数、用户名和密码。

  4. 查找Web后台管理入口。

    WEB后台管理通常不对普通用户开放,要找到后台管理的登录网址,可以利用Web目录扫描工具(如:wwwscan、AWVS)快速搜索到可能的登录地址,然后逐一尝试,便可以找到后台管理平台的登录网址。

  5. 入侵和破坏。

    一般后台管理具有较高权限和较多的功能,使用前面已破译的用户名、密码成功登录后台管理平台后,就可以任意进行破坏,比如上传木马、篡改网页、修改和窃取信息等,还可以进一步提权,入侵Web服务器和数据库服务器。

总结

​ 概念相关就介绍到此,下一篇将会具体介绍如何通过工具来进行相关Sql注入的测试一一 Sqlmap

------------- 本 文 结 束 感 谢 您 的 阅 读 -------------