L003001014-HTTP攻击与防范-SQL注入攻击-04脚本ASP的SQL注入防护_第1页
L003001014-HTTP攻击与防范-SQL注入攻击-04脚本ASP的SQL注入防护_第2页
L003001014-HTTP攻击与防范-SQL注入攻击-04脚本ASP的SQL注入防护_第3页
L003001014-HTTP攻击与防范-SQL注入攻击-04脚本ASP的SQL注入防护_第4页
L003001014-HTTP攻击与防范-SQL注入攻击-04脚本ASP的SQL注入防护_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 课程编写类别内容实验课题名称HTTP攻击与防范-SQL注入攻击-04脚本ASP的SQL注入防护实验目的与要求1、了解如何防护SQL注入2、了解对ASP代码如何修改进行SQL注入防护实验环境VPC1(虚拟PC)操作系统类型:windows;网络接口:本地连接VPC1 连接要求PC 网络接口,本地连接与实验网络直连软件描述1、学生机要求安装java环境2、vpc安装windows实验环境描述1、 学生机与实验室网络直连;2、 VPC1与实验室网络直连;3、 学生机与VPC1物理链路连通;预备知识SQL注入被那些菜鸟级别的所谓黑客高手玩出了滋味,发现现在大部分黑客入侵都是基于SQL注入实现的.&#

2、160; 现在我开始说如果编写通用的SQL防注入程序一般的http请求不外乎get 和 post.  所以只要我们在文件中过滤所有post或者get请求中的参数信息中非法字符即可,所以我们实现http 请求信息过滤就可以判断是是否受到SQL注入攻击。  IIS传递给asp.dll的get 请求是是以字符串的形式,当传递给Request.QueryString数据后,asp解析器会分析Request.QueryString的信息,  然后根据"&",分出各个数组内的数据

3、所以get的拦截如下:首先我们定义请求中不能包含如下字符:|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare 各个字符用"|"隔开,然后我们判断的得到的Request.QueryString,具体代码如下 :  dim N_userip,N_thispage,squery,sURL,SQL_injdata,SQL_inj,SQL_Data,Sql_PostN_userip = Request.ServerVariabl

4、es("REMOTE_ADDR")N_thispage = LCase(Request.ServerVariables("URL")squery=lcase(Request.ServerVariables("QUERY_STRING")sURL=lcase(Request.ServerVariables("HTTP_HOST")SQL_injdata =":|;|>|<|-|sp_|xp_|dir|cmd|(|)|+|$|'|copy|format|and|exec|insert|se

5、lect|delete|update|count|*|%|chr|mid|master|truncate|char|declare"SQL_inj = split(SQL_Injdata,"|")If Request.QueryString<>"" ThenFor SQL_Data=0 To Ubound(SQL_inj)           if instr(squery&sURL,Sql_Inj(Sql_DATA)>

6、0 Then                    Response.Write "SQL防注入系统<br>"                    Response.Write &quo

7、t;操作时间:"&Now&"<br>"                    Response.Write "操作IP:"&N_thispage&"<br>"          

8、60;         Response.Write "操作IP:"&N_userip&"<br>"                    Response.end        &

9、#160;  end ifnextEnd If 这样我们就实现了get请求的注入的拦截,但是我们还要过滤post请求。对于表单提交,所以我们还得继续考虑request.form,这个也是以数组形式存在的,我们只需要再进一次循环判断即可。 代码如下:If Request.Form<>"" Then           For SQL_Data=0 To Ubound(SQL_inj)    

10、60;               if instr(squery&sURL,Sql_Inj(Sql_DATA)>0 Then                          

11、0;  Response.Write "SQL防注入系统<br>"                             Response.Write "操作时间:"&Now&"<br>" 

12、0;                           Response.Write "操作IP:"&N_thispage&"<br>"           &

13、#160;                 Response.Write "操作IP:"&N_userip&"<br>"                     

14、        Response.end                    end if           nextend if 好了大功告成,我们已经实现了get和post请求的信息拦截,你只需要在conn.asp之类的打

15、开数据库文件之前引用这个页面即可。放心的继续开发你的程序,不用再考虑是否还会受到SQL注入攻击。 实验内容1、 掌握Web脚本利用2、 掌握Web漏洞利用点3、 掌握SQL注入工具的使用实验步骤l 实验操作1、 学生单击实验拓扑按钮,进入实验场景,(第一次启动目标主机,还需要安装java控件)。,2、 学生输入账号administrator,密码123456,登录到实验场景中的目标主机。如图所示:3、 打开IE浏览器,登录网站。如图所示:4、  打开d:tools文件夹中的啊D.rar解压包,点击啊D->QiQi.exe。如图所示:点击“关闭”点击“QiQi

16、.exe”4、 打开QiQi.exe软件,点击登录进入。如图所示:点击“登录”。6、  点击扫描注入点,在检测网址栏中输入,并点击打开网页。如图所示: 注:图中4就是检测出来可用注入的点。7、  双击“可用注入点”中的红色网址。进入如图所示页面:8、  点击检测按钮,软件提示准备就绪,点击检测表段,即可对字段进行扫描。如图所示:9、点击检测表段中的“admin”,然后点击检测字段。即可看到如图所示字段:10、勾选上username、password、id并点击检测内容,等待几分钟,在编号中会出现username、password、id

17、的信息。如图所示:11、点击“管理入口检测”选项,再点击“检测管理入口”按钮,出现如图所示页面: 12、右键点击13、 输入获取的username和password即可进入到的管理页面。如图所示:14、使用admin账户登陆以后我们具有了管理权限,可对该网站进行操作。如图所示:15、打开c:websiteArticle目录,用鼠标选中conn.asp与conn防护.asp16、右键使用UltraEdit-32进行编辑17、利用UltraEdit-32的“比较文件”功能对两个文件进行比较。18、点击比较按钮19、点击确定 20、如图显示红色部分为加入SQL防注入系统部分即在o

18、ption explicit行与response.buffer=true 行之间增加了防护注入的代码,如下 dim N_userip,N_thispage,squery,sURL,SQL_injdata,SQL_inj,SQL_Data,Sql_PostN_userip = Request.ServerVariables("REMOTE_ADDR")N_thispage = LCase(Request.ServerVariables("URL")squery=lcase(Request.ServerVariables("QU

19、ERY_STRING")sURL=lcase(Request.ServerVariables("HTTP_HOST")SQL_injdata =":|;|>|<|-|sp_|xp_|dir|cmd|(|)|+|$|'|copy|format|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"SQL_inj = split(SQL_Injdata,"|")If Request.QuerySt

20、ring<>"" Then    For SQL_Data=0 To Ubound(SQL_inj)       if instr(squery&sURL,Sql_Inj(Sql_DATA)>0 Then           Response.Write "SQL防注入系统<br>"    

21、       Response.Write "操作时间:"&Now&"<br>"           Response.Write "操作IP:"&N_thispage&"<br>"          

22、Response.Write "操作IP:"&N_userip&"<br>"           Response.end       end if    nextEnd If If Request.Form<>"" Then      

23、For SQL_Data=0 To Ubound(SQL_inj)           if instr(squery&sURL,Sql_Inj(Sql_DATA)>0 Then              Response.Write "SQL防注入系统<br>"              Response.Write "操作时间:"&Now&"<br>"         &

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论