最近阿菜姐我研究了一下web相关的安全问题,现在梳理一下内容。
如果您想给自己立个Web安全大佬的flag,那么您必须知道在这个网站:https://owasp.org/
OWASP?是开放式Web应用程序安全项目,是致力于网络应用程序安全的国际非营利组织。我们可以在其网站上免费获得他们提供的文档,工具,视频和论坛等所有资料。同时我们还要关注该网站定期更新的OWASP Top 10报告。这不但能提升我们的英语阅读能力,还能在同行里制造话题,显得我们B格很高。
图 OWASP 网站OWASP Top Ten页面
从OWASP Top Ten我们可以了解到十大Web应用程序安全风险,下面我们来重点了解一下长期盘踞在榜上的Web安全问题。
一、SQL Injection(注入)
最常见的就是SQL注入攻击了,因为只要是有数据库的地方必定有SQL注入,攻击者会:
1.在数据库内增加删除修改数据
2.窃取数据库或数据库关键信息
3.利用数据库查询高权限用户信息并利用(入口突破)
SQL注入一般会在http://xxx.xxx.xxx/abc.asp?id=XX这样等带有参数的ASP动态网页中,有些动态网页中可能只有一个参数,有些可能有n个参数;有些参数是整型,有些参数是字符串型。只要是带有参数的动态网页访问了数据库就有可能存在SQL注入。
我们首选要修改浏览器的设置,以便更好的了解动态网页参数里包含的信息。以IE浏览器为例,把IE菜单-工具-Internet选项-高级-显示友好HTTP错误信息前面的勾去掉。
下面以http://xxx.xxx.xxx/abc.asp?p=YY为例进行分析,“YY”可能是整型,也有可能是字符串。
1、整型参数的判断
当输入的参数YY为整型时,通常abc.asp中SQL语句原貌大致如下:
select * from 表名 where 字段=YY,所以可以用以下步骤测试SQL注入是否存在。
(1)http://xxx.xxx.xxx/abc.asp?p=YY and 1=2, abc.asp运行异常;
(2)http://xxx.xxx.xxx/abc.asp?p=YY′(附加一个单引号),此时abc.ASP中的SQL语句变成了select * from 表名 where 字段=YY′,abc.asp运行异常;
(3)http://xxx.xxx.xxx/abc.asp?p=YY and 1=1, abc.asp运行正常,而且与http://xxx.xxx.xxx/abc.asp?p=YY运行结果相同;
如果这三个方面全部满足,abc.asp中一定存在SQL注入漏洞!