- 1、本文档共84页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WEB安全攻防“安全意识培训是获得安全的钥匙。” ——(美国)国家标准与技术局正元地理信息有限责任公司黑客的工作环境是这样的黑客软件是这样的漏洞百分比安全控制流程工具扫描人工检查其它方法安全测试方法目录WEB安全根源SQL注入漏洞 top 10XSS(跨站)漏洞 top 10CSRF 跨站伪造请求 top 10URL跳转 top 10Cookie 安全系统命令注入远程代码执行漏洞文件上传漏洞文件包含漏洞遍历目录漏洞越权访问漏洞嵌入恶意代码漏洞不安全的密码存储 top 10薄弱的传输层保护 top 10泄漏信息漏洞业务安全Web安全根源目录WEB安全根源SQL注入漏洞 top 10XSS(跨站)漏洞 top 10CSRF 跨站伪造请求 top 10URL跳转 top 10Cookie 安全系统命令注入远程代码执行漏洞文件上传漏洞文件包含漏洞遍历目录漏洞越权访问漏洞嵌入恶意代码漏洞不安全的密码存储 top 10薄弱的传输层保护 top 10泄漏信息漏洞业务安全SQL注入过程缺少对http输入的合法性判断Internet攻击者WEB服务器数据库构建特殊数据库查询语句动态查询数据库获得数据库信息返回数据库信息利用数据库返回的信息,判断注入点,并进而通过数据库表单猜解、获取管理员账号及密码;最后用管理员账号登陆后台,接管网站SQL注入漏洞代码final String sql = select * from product where id= + request.getParameter(“id) ;conn.execqueryResultSet(sql);攻击方法http://localhost:8080/struts1/listProduct.htm?id=1 and 1=2 union select 1,name,pass,4 from userSQL语句select * from product where id=1 and 1=2 union select 1,name,pass,4 from userSQL注入-数字型代码final String sql = select * from product where pname like ‘% + request.getParameter(“pname) + “%’” ;conn.execqueryResultSet(sql);攻击方法http://localhost:8080/struts1/listProduct.htm?id=1’ and 1=2 union select 1,name,pass,4 from user where ‘’’SQL语句select * from product where pname like ‘%1’ and 1=2 union select 1,name,pass,4 from user where ‘’’%’SQL注入-字符型SQL注入-案例 SQL注入属于一种古老且常见的Web应用漏洞。通过该漏洞,攻击者可轻易地获取到数据库内的各种数据,俗称“拖库”。究其本质,和著名的缓冲区溢出漏洞有异曲同工之处,即:数据和代码混合存储。 在冯. 诺依曼计算机结构中,计算机指令和数据混合存储,即一个存储单元在解释时期其性质是含混的。这个含混性只有当被取出或当成一条指令来执行或当成一个数据来操作时才暂时地能分辨出来[1] 。当Web应用未能对用户提交的数据进行严格检查时,用户提交的数据就可能会被执行,从而触发SQL注入漏洞。[1] 张效强 《计算机科学技术百科全书》 1998.8 清华大学出版社基于MySQL的SQL注入攻击3、当用户用浏览器访问地址http://xxx.xxx.xxx.xxx/showart.php?id=1时,浏览器会显示类似左边的内容。当URL中参数id=2http://xxx.xxx.xxx.xxx/showart.php?id=1时,浏览器会显示类似左边的内容。当URL中参数http://xxx.xxx.xxx.xxx/showart.php?id=1时,浏览器会显示类似左边的内容。当URL中参数id=2id=2时,在“标题”和“内容”处会有变化此时实际执行的SQL语句此时实际执行的SQL语句当id=2时查询出来的值为Title2和Content2当id=1时查询出来的值为Title1和Content1基于MySQL的SQL注入攻击4、将变量id赋值为1和1 and 1=1后,结果如左图。5、由上面的信息可判断该URL未对id变量进行过滤,存在SQL注入漏洞。此时实际执行的SQL语句当id=1时,由于SQL语句出错,查不到记录当id=1and 1=1时查询出的结果与id=1结果相同此时实际执行的SQL语句基于MySQL
文档评论(0)