Web编程常见漏洞与检测

Web编程常见漏洞与检测

ID:41298231

大小:235.00 KB

页数:33页

时间:2019-08-21

Web编程常见漏洞与检测_第1页
Web编程常见漏洞与检测_第2页
Web编程常见漏洞与检测_第3页
Web编程常见漏洞与检测_第4页
Web编程常见漏洞与检测_第5页
资源描述:

《Web编程常见漏洞与检测》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Web编程常见漏洞与检测By:Neeao2008.9.21Web漏洞检测白盒检测对检测者的要求:——能读懂用此语言写的程序——明白漏洞成因——漏洞挖掘经验常用的web脚本语言:Asp/Php/Jsp/asp.net常见的web漏洞sql注入文件上传cookie欺骗XSS攻击文件包含其他Sql注入及其危害所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。通过递交参数构造巧妙的SQL语句,从而成功获取想要的数据。分为字符型注入和数字型的注入,由于编程语言不同,所存在的注

2、入类型也不同。危害:--非法查询其他数据库资源,如管理员帐号。--执行系统命令--获取服务器root权限Sql注入原理Test.asp文件代码片段:sqlStr=“select*fromn_userwhereusername=‘”&username&”’andpassword=‘“&password&”’rs=conn.execute(sqlStr)正常的查询:test.asp?username=test&password=123sqlStr=“select*fromn_userwhereusername=‘test’andpassword=‘

3、123’“使password=123‘or‘1’=‘1:Sql语句到数据库后:sqlStr=“select*fromn_userwhereusername=‘test’andpassword=‘123’or‘1’=‘1’“Or‘1’=‘1’始终成立。Asp表现存在数字型和字符型注入。(A)数字型字段=51Select*from表名where字段=51构造参数:ID=49And[查询条件]生成语句:Select*from表名where字段=49And[查询条件](B)字符型的另一种形式搜索语句:Select*from表名where字段like’%

4、关键字%’构造参数:keyword=’and[查询条件]and‘%25’=’生成语句:Select*from表名where字段like’%’and[查询条件]and‘%’=’%’Asp注入的预防对于用户端输入的任意字符,包括GET提交,POST提交,Cookie提交,SERVER提交的都需要做严格过滤。对于数字型参数判断是否为数字:可用函数isNumeric来判断,返回值为true和false。对于字符型参数过滤单引号,使其无法闭合当前sql语句的单引号。例外:base64编码Sql通用防注入Php中的表现Php的魔术引号(magic_quot

5、es_gpc)。php.ini-dist默认是开启此功能。如果安装php时使用此文件,将不会产生字符型注入,主要是数字型注入。数字型注入:select*fromguesswhereid=“.$id.”select*fromguesswhereid=$idGPC不起作用的情况数组$userid=$_POST[userid'];for($i=0;$i

6、编码后的单引号:Jw==mysql处理GBK编码字符%bf%27导致单引号被绕过的问题。其他数据库,如mssql。对于转义符反斜杠作为字符处理的。select*fromtestwheretitle='aaa'or'1'='1‘Php注入的预防(一)确认GPC开启,若没开启则用addslashes函数过滤之,如下代码。if(!get_magic_quotes_gpc()){     $lastname=addslashes($_POST['lastname']); }else{     $lastname=$_POST['lastname'];

7、 }对于数字型参数可使用intval或floatval强制转换为数字型。注意mysql的版本以及默认字符集,Mysql>4.1字符集连接字符串:mysql_query("SETcharacter_set_connection=$dbcharset,character_set_results=$dbcharset,character_set_client=binary;");Php注入的预防(二)Php5以上版本Mysqli扩展预防,参数化查询$city="Amersfoort"; /*createapreparedstatement*/ $st

8、mt=$mysqli->prepare("SELECTDistrictFROMCityWHEREName=?")$stmt->bind_param("

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。