Sql注入例子.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Sql注入例子 一没有正确过滤转义字符 ■SELECT * FROM users WHERE name = + userName + ; 这种代码的设计目的是将一个特定的用户从其用户表中取出,但是,如果用户名被一个恶意的用户用一种特定的方式伪造,这个语句所执行的操作可能就不仅仅是代码的作者所期望的那样了。例如,将用户名变量(即username)设置为:a or 1=1那么原语句就变成 SELECT * FROM users WHERE name = a or t=t; 如果这种代码被用于一个认证过程,那么这个例子就能够强迫选择一个合法的用户名,因为赋值t=t永远是正确的。 如果userName设置为a; DROP TABLE users; SELECT * FROM DATA WHERE name LIKE % 就执行以下操作: SELECT * FROM users WHERE name = a; DROP TABLE users; SELECT * FROM DATA WHERE name LIKE %; select * from [User] where username=+name+ and password=+pwd+; 比如我知道用户名为student,那么输入:student;‘--’ -用于注释掉后面的内容,原语句就变成: select * from [User] where username=student;--and password=;语句执行成功。 其它的SQL执行不会将执行同样查询中的多个命令作为一项安全措施。这会防止攻击者注入完全独立的查询,不过却不会阻止攻击者修改查询。 2绕过程序限制继续注入提到,有很多人喜欢用’号测试注入漏洞,所以也有很多人用过滤’号的方法来“防止”注入漏洞,这也许能挡住一些入门者的攻击,但对SQL注入比较熟悉的人,还是可以利用相关的函数,达到绕过程序限制的目的。 有些语句包含有’号,我们举个例子来看看怎么改造这些语句: 简单的如where xtype=’U’,字符U对应的ASCII码是85,所以可以用where xtype=char(85)代替;如果字符是中文的,比如where name=’用 户’,可以用where name=nchar(29992)+nchar(25143)代替。 再在Global文件里里加入 protected void Application_BeginRequest(Object sender, EventArgs e) { //SQL防注入 string Sql_1 = exec|insert+|select+|delete+|update+|count|chr|mid|master+|truncate|char|declare|drop+|drop+table|creat+|creat+table; string Sql_2 = exec+|insert|insert+|delete+|update+|count(|count+|chr+|+mid(|+mid+|+master+|truncate+|char+|+char(|declare+|drop+|creat+|drop+table|creat+table; string[] sql_c = Sql_1.Split(|); string[] sql_c1 = Sql_2.Split(|); if (Request.QueryString != null) { foreach (string sl in sql_c) { if (Request.QueryString.ToString().ToLower().IndexOf(sl.Trim()) = 0) { Response.Write(警告!你的IP已经被记录!不要使用敏感字符!);// Response.Write(sl); Response.Write(Request.QueryString.ToString()); Response.End(); break; } } } if (Request.Form.Count 0) { string s1 = Request.ServerVariables[SERVER_NAME].Trim();//服务器名称 if (Request.ServerVariables[HTTP_REFERER] != null) { string s2 = Request.ServerVariables[HTTP_REFERER].Trim();//http接收的名称 string s3 = ; if (s1.Length (s2.Le

文档评论(0)

638922bb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档