(一)漏洞防护
漏洞防护 | 说明 | |
1 | SQL注入漏洞分析与防护 | ①对输入进行安全过滤。 对输入变量安全过滤与参数验证,禁止非预期参数传递给后台数据库 建立黑名单。拒绝己知恶意输入,如insert、update、delete、or、drop等 建立白名单。只接收已知正常输入,如表单只允许数字和大、小写字母等 ②设置应用程序最小化权限 最小化设置数据库和Web程序执行权限,阻止SQL执行 建立数据库独立账号,使用最小权限执行数据库操作 ③屏蔽应用程序错误提示信息。 SQL注入攻击属于尝试攻击技术,出错时默认会显示错误信息,包括ODBC类型、数据库引擎、数据库名称、表名称、变量、错误类型等诸多内容 ④对开源Web程序做安全适应性改造。 避免攻击者无须猜测就能知道后台数据库类型及各种表结构 |
2 | 文件上传漏洞分析与防护 | 文件上传漏洞:由于Web应用程序代码未对用户提交文件严格分析和检查,攻击者可以执行上传文件,从而获取网站控制权限,如建立Web Shell ①将上传目录设置为不可执行,避免上传文件远程触发执行 ②检查上传文件安全性,阻断恶意文件上传 |
3 | 跨站脚本攻击 | 跨站脚本攻击(Cross-Site Scripting Attacks):利用网站漏洞,在URL注入一些恶意脚本,欺骗用户。 典型攻击方式: ①HTML内容替换 http://mybank.com/ebanking?URL=http://levilsite.com/phishing/fakepage.html ②嵌入脚本内容 http://mybank.com/ebanking?page=1&client=<SCRIPT>evilcode... ③强制网页加载外部脚本 http://mybank.com/ebanking?page=1&response=evilsite.com%21evilcode.js&go=2 |
(二)SQL注入
http://duck/index.asp?category=food
(1)后台对应程序
v_cat=request("category")
sqlstr="SELECT * FROM product WHERE Category='" & v_cat & """
set rs=conn.execute(sqlstr)
(2)正常请求
SELECT * FROM product WHERE Category='food'
(3)恶意请求
http://duck/index.asp?category=food' or 1=1--
(4)数据库执行
SELECT * FROM product WHERE Category= 'food' or 1=1--'
查询得到product表所有信息