SQL注入攻击实验报告

合集下载

SQL注入攻击实验报告

SQL注入攻击实验报告

SQL注入攻击1、理论:所谓SQL注入,就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

具体来说,它是利用现有应有程序,将(恶意的)SQL 命令注入到后台数据库引擎执行的能力,它可以通过在web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句2、实验流程:建数据库-代码-简单攻击3、准备:phpstudy(其中包括apache\php\sql)4、总体思路:1.寻找到SQL注入的位置2.判断服务器类型和后台数据库类型3.针对不同的服务器和数据库特点进行SQL注入攻击5、大致讲解:比如在一个登录界面,要求输入用户名和密码,可以这样输入实现免帐号登录:用户名:‘or 1 = 1 –-密码:点登陆,如若没有做特殊处理,那么这个非法用户就很得意的登陆进去了.(当然现在的有些语言的数据库API已经处理了这些问题)这是为什么呢?从理论上说,后台认证程序中会有如下的SQL语句:String sql = "select * from user_table where username= ' "+userName+" ' and password=' "+password+" '";当输入了上面的用户名和密码,上面的SQL语句变成:SELECT * FROM user_table WHERE username='’or 1 = 1 -- and password='’分析SQL语句:条件后面username=”or 1=1 用户名等于” 或1=1 那么这个条件一定会成功;然后后面加两个-,这意味着注释,它将后面的语句注释,让他们不起作用,这样语句永远都能正确执行,用户轻易骗过系统,获取合法身份。

SQL注入攻击实验报告

SQL注入攻击实验报告

SQL注入攻击报告院系:计算机与通信工程学院班级:信息安全10-02班实验目的通过SQL注入攻击,掌握网站的工作机制,认识到SQL注入攻击的防范措施,加强对Web 攻击的防范。

1.实验内容通过模拟SQL注入攻击获得某网站后台登陆密码。

(1)端正学习目的,禁止恶意入侵,不可对他人网站造成不良影响。

(2)寻找Internet上用ASP、PHP、JSP或者语言编写的动态网站,测试其是否存在SQL 注入漏洞,选择一个可能存在漏洞的网站进行模拟攻击。

(3)获得后台数据库中的存储网站用户和密码的数据表。

(4)获得其中一对用户名和密码。

(5)找到登陆后台系统的网页路径,用获得的用户名和密码验证是否能登陆。

(6)为这个网站的SQL注入漏洞提出解决方案和防范办法。

3.实验步骤解攻击方法在地址栏: and 1=1查看漏洞是否存在,如果存在就正常返回该页,如果没有,则显示错误,继续假设这个站的数据库存在一个admin表在地址栏: and 0<>(select count(*) from admin)返回页正常,假设成立了。

下面来猜猜看一下管理员表里面有几个管理员ID:and 1<(select count(*) from admin)页面什么都没有。

管理员的数量等于或者小于1个and 1=(select count(*) from admin)输入=1没显示错误,说明此站点只有一个管理员。

下面就是要继续猜测admin 里面关于管理员用户名和密码的字段名称。

and 1=(select count(*) from admin where len(username)>0)用户名称字段猜解完成之后继续猜解密码字段and 1=(select count(*) from admin where len(password)>0)password 字段存在!我们已经知道了管理员表里面有3个字段 id,user,password。

sql注入实验报告.

sql注入实验报告.
(8)数据敏感信息非常规加密,通过在程序中对口令等敏感信息加密都是采用md5函数进行加密,即密文=md5(明文),本文推荐在原来的加密的基础上增加一些非常规的方式,即在md5加密的基础上附带一些值,如密文=md5(md5(明文)+123456);
三、实验步骤
1、查看Web程序的数据库
打开浏览器输入:“http:本地ip/phpmyadmin/”
无密码登录成功
无用户名无密码的登录
使用“1=1”这条恒成立的语句,可以在缺少更多信息的情况下,成功登录。
url参数:“?username=z'or'1=1'%23”
图:无用户名无密码登录成功
在服务器生成用户信息文件
导出文件到Web服务器的tmp目录。
数据库中的user表被导出到Ubuntu服务器的tem目录。
WebApp目录图
3、在打开的登录模块access.php此模块使用GET提交信息,可以通过URL发送参数登录
使用数据表user中存在的用户名和密码Username=bluedon password=mypass是数据库存在的用户信息URL参数“?username=bluedon&password=mypass”,将第这条url参数复制到链接之后,回车确定。
现在远程登录Web服务器(linux靶机),查看tmp目录下的文件。
“Places”>“Desktop”>“File System”>“tmp”
图1
图2
SQL注入前,tmp目录下不存在“sss.txt ”文件
图:查看是否存在生成文件
使用url参数“?username=’ or 1=1 into outfile ’/tmp/sss.txt’%23”

中山大学实验3-SQL注入攻击实验

中山大学实验3-SQL注入攻击实验

1.实验报告如有雷同,雷同各方当次实验成绩均以0分计。

2.当次小组成员成绩只计学号、姓名登录在下表中的。

警示3.在规定时间内未上交实验报告的,不得以其他方式补交,当次成绩按0分计。

4.实验报告文件以PDF格式提交。

院系班级组长学号学生实验分工SQL注入攻击实验【实验目的】了解SQL注入攻击的过程。

通过SQL注入攻击,掌握网站的工作机制,认识到SQL注入攻击的危害,加强对Web攻击的防范。

禁止恶意入侵,不可对他人网站造成不良影响。

建议自行搭建简易网站进行实验。

【实验原理】结构化查询语言SQL是一种用来和数据库交互的文本语言,SQL注入就是利用某些数据库的外部接口把用户数据插入到实际的数据库操作语言当中,从而达到入侵数据库乃至操作系统的目的。

它的产生主要是由于程序对用户输入的数据没有进行细致的过滤,导致非法数据的导入查询。

在下面的攻击实验中,需要用到wed.exe和wis.exe两个命令行工具(从网络上下载),其中wis.exe 用于扫描某个站点中是否存在SQL注入漏洞;wed.exe是用于破解SQL注入用户名和密码。

将两个工具结合起来,就可以体验从寻找注入点到注入攻击完成的整个过程。

【实验过程】(给出实验使用的真实网址,测试需要贴出适当的截图)(1)判断环境,寻找注入点使用wis.exe寻找注入漏洞,其使用格式:wis 网址例如,检测某个网址/,首先进入命令提示窗口,然后输入命令:wis /命令输入结束后,单击回车键,即可开始扫描。

注意命令格式,在输入网址时,网址需放在http://和/之间,否则扫描无法进行。

你找到有SQL注入漏洞的网站是:(2)查看SQL注入攻击漏洞扫描结束后,可以看到网站上有否存在SQL注入攻击漏洞。

漏洞信息一般以红色字体显示,以“SQL Injection Format”开头的那些行。

假设扫描后其中某行如下:SQL Injection Format:/xygk.asp?typeid=34&bigclassid=98这是特征明显的数据库查询语句,可以选择其来做破解用户名和密码实验。

sql注入的实验总结

sql注入的实验总结

sql注入的实验总结
SQL注入是一种常见的安全漏洞,利用它可以对数据库进行非法访问和操作。

在进行SQL注入的实验过程中,我学到了一些重要的知识和经验。

首先,我学习了SQL注入的原理。

SQL注入是通过将恶意代码插入到应用程序的SQL查询中来实现的。

当应用程序没有对用户输入的数据进行充分验证和过滤时,攻击者可以利用这个漏洞将恶意代码注入到应用程序的SQL查询中,从而执行恶意操作。

其次,我学会了如何检测和利用SQL注入漏洞。

在实验中,我使用了一些常用的技术和工具,如手工注入、使用单引号、分析错误信息等。

通过这些方法,我可以发现应用程序中的SQL注入漏洞,并尝试利用这些漏洞来获取敏感信息或者修改数据库的数据。

另外,我也了解到了如何预防SQL注入漏洞。

在实验过程中,我发现了一些常见的防御措施,如使用参数化查询、输入验证和过滤、最小权限原则等。

这些措施可以有效地防止SQL注入攻击,增加应用程序的安全性。

在实验中,我还发现了一些SQL注入的常见攻击场景。

例如,登录页面、搜索功能、用户注册等都是攻击者经常利用的入口点。

通过对这些场景进行实验,我更好地理解了SQL注入攻击的实际应用场景,并且能够更好地保护应用程序的安全。

总之,SQL注入是一种常见的安全漏洞,在进行相关实验的过程中,我学到了很多关于SQL注入攻击的知识和技巧。

通过了解SQL注入的原理、检测和利用方法,以及防御措施,我可以更好地保护应用程序的安全,并且在开发过程中避免这类漏洞的出现。

SQL注入攻击实验报告_林凯杰_200930601340

SQL注入攻击实验报告_林凯杰_200930601340

SQL注入攻击实验【实验要求】1)Sql注入攻击的实现与防御,其中防御模块为可选作部分。

2)要求:提交源代码和可执行文件,提供用户使用文档和实验报告文档(包括开发环境、运行主要截图、实验收获等说明)。

【实验原理】1、结构化查询语言(SQL)是一种用来和数据库交互的文本语言,SQL Injection就是利用某些数据库的外部接口把用户数据插入到实际的数据库操作语言当中,从而达到入侵数据库乃至操作系统的目的。

它的产生主要是由于程序对用户输入的数据没有进行细致的过滤,导致非法数据的导入查询。

2、SQL注入攻击主要是通过构建特殊的输入,这些输入往往是SQL语法中的一些组合,这些输入将作为参数传入Web应用程序,通过执行SQL语句而执行入侵者的想要的操作,一般想要攻击成功,需要做到以下三点:1)确定Web应用程序所使用的技术:注射式攻击对程序设计语言或者硬件关系密切,但是这些可以通过适当的踩点或者索性将所有常见的注射式攻击都搬出来逐个试一下就知道了。

为了确定所采用的技术,攻击者可以考察Web页面的页脚,查看错误页面,检查页面源代码,或者使用诸如Nessus等工具来进行刺探。

2)确定所有可能的输入方式:Web应用的用户输入方式比较多,其中一些用户输入方式是很明显的,如HTML表单;另外,攻击者可以通过隐藏的HTML表单输入、HTTP头部、cookies、甚至对用户不可见的后端AJAX请求来跟Web应用进行交互。

一般来说,所有HTTP的GET和POST都应当作用户输入。

为了找出一个Web 应用所有可能的用户输入,我们可以求助于Web代理,如Burp等。

3)查找可以用于注射的用户输入:在找出所有用户输入方式后,就要对这些输入方式进行筛选,找出其中可以注入命令的那些输入方式。

这个任务好像有点难,但是这里有一个小窍门,那就是多多留意Web应用的错误页面,很多时候您能从这里得到意想不到的收获。

3、SQL注入攻击的特点。

SQL注入实验报告

SQL注入实验报告

SQL注⼊实验报告实验项⽬SQL注⼊综合性实验2020年9⽉25⽇⼀、实验综述1.实验⽬的及要求创建VMWARE虚拟机 的Windows环境,在虚拟机中安装phpstudy,并搭建DVWA环境,通过学习web⼯作原理与SQL注⼊⼯作原理,能够实现简单的SQL注⼊验证。

2.实验仪器、设备或软件VmwareDVWAphpStudy3.实验原理(1)Web⼯作原理:Web服务器的本质就是 接收数据 ⇒ HTTP解析 ⇒ 逻辑处理 ⇒ HTTP封包 ⇒ 发送数据。

Web服务器的⼯作流程:1)⽤户做出⼀个操作,可以是填写⽹址敲回车,可以是点链接,接着通过浏览器获取事件。

2)浏览器通过TCP三次握⼿与服务器程序连接3)浏览器将⽤户事件按照HTTP格式打包成⼀个数据包,其实质就是在待发送缓冲区中的⼀段有着HTTP协议格式的字节流。

4)浏览器确认对端可写,并将该数据包推⼊internet,该包经过⽹络最终递交到服务器程序。

5)服务端拿到该数据包后,同样以HTTP协议格式解包,解析客户端的意图。

6)得知客户端意图后,进⾏分类处理,或者提供某种⽂件、或者处理数据。

7)返回结果,将结果装⼊缓冲区,或是HTML⽂件、或是⼀张图⽚等。

8)按照HTTP协议格式将返回结果的数据包进⾏打包处理。

9)服务器确认对端可写,并将该数据包推⼊Internet,该包经过⽹络最终递交到客户端。

10)浏览器拿到包后,以HTTP协议格式解包,然后解析数据,如:是HTML⽂件11)浏览器将HTML⽂件展⽰在页⾯上。

Web服务器的⼯作流程(GET请求)Web服务器最主要的功能就是提供静态⽂件。

⽇常的上⽹浏览⼤多为⽹页浏览。

在GET请求下的⽂本服务器⼯作原理如下:主要步骤基本不变,只有第1)步、第6)步和第7)步有些不同。

第1)步:当⽤户点击⼀个⽹页链接或浏览器加载⼀些资源(css,jpg …)时产⽣。

第6)步:服务程序解包后,确定其为GET请求,并且是对该服务器上的某⼀资源的请求。

SQL注入攻击实验

SQL注入攻击实验

课外实践作业一:SQL注入实验(1) 实验描述在本次实验中,我们修改了phpBB的web应用程序,并且关闭了phpBB实现的一些对抗SQL注入的功能。

因而我们创建了一个可以被SQL注入的phpBB版本。

尽管我们的修改是人工的,但是它们代表着web开发人员的一些共同错误。

学生的任务是发现SQL注入漏洞,实现攻击者可以达到的破坏,同时学习抵挡这样的攻击的技术。

(2) 实验环境SEED Ubuntu镜像●环境配置实验需要三样东西,Firefox、apache、phpBB2(镜像中已有):①运行Apache Server:镜像已经安装,只需运行命令%sudo service apache2 start②phpBB2 web应用:镜像已经安装,通过访问,应用程序源代码位于/var/www/SQL/SQLLabMysqlPhpbb/③配置DNS:上述的URL仅仅在镜像内部可以访问,原因是我们修改了/etc/hosts文件使指向本机IP 127.0.0.1。

如果需要在其他机器访问,应该修改hosts文件,使URL映射到phpBB2所在机器的IP。

●关闭对抗措施PHP提供了自动对抗SQL注入的机制,被称为magic quote,我们需要关闭它。

1.找到/etc/php5/apache2/php.ini2.找到magic_quotes_gpc = On这一行3.改为magic_quotes_gpc = Off4.重启Apache:”sudo service apache2 restart”●Note for Instructors最好拥有一些背景知识1.使用虚拟机,Firefox的插件LiveHttpHeaders和Tamper Data2.对SQL语句的一些了解3.如何操作MySQL数据库4.对PHP一些了解(3) 实验任务①对SELECT语句的攻击此次任务,你需要通过访问虚拟机内的URL:。

在进入phpBB 之前系统会要求你登陆。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告
(实验名称:SQL注入攻击)
一、实验目的
通过SQL注入攻击,掌握网站的工作机制,认识到SQL注入攻击的防范措施,加强对Web攻击的防范。

二、实验环境
描述实验开展所基于的网络环境,给出网络拓扑、IP地址、web服务器、客户机等信息。

宿主机(客户机):操作系统为Windows 10,IP为192.168.18.11,在主机上安装虚拟化软件Vmware Player,在此基础上创建虚拟机并安装操作系统,进行网络配置,采用环回适配器,桥接模式,实现宿主机与虚拟机之间的网络通信,虚拟机(Web服务器):操作系统为Windows XP,IP为192.168.18.9,
本实验利用windows 的iis 服务搭建了一个有SQL 注入漏洞的网站“ASP 新闻发布系统”,以该网站为目标,对其实施SQL 注入攻击。

本实验所需工具如下:
IIS 是Internet Information Server 的缩写,是微软提供的Internet 服务器软件,包括Web、等服务器,也是目前常用的服务器软件。

版本不限。

“啊D”注入工具:对“MSSQL 显错模式”、“MSSQL 不显错模式”、“Access”等数据库都有很好的注入检测能力,内集“跨库查询”、“注入点扫描”、“管理入口检测”、“目录查看”等等于一身的注入工具包。

“ASP 新闻发布系统”Ok3w v4.6 源码。

三、实验内容
(一)配置实验环境,
首先选择网络适配器,安装环回适配器,在主机上安装Vmware Player,成功启动虚拟机。

接着配置宿主机和虚拟机的IP,如图
要注意的是,配置主机上的IP时,应该选择VMnet8,并且注意勾取Bridge
然后,验证宿主机和虚拟机是否联通,结果显示连接成功。

最后在虚拟机上安装IIS程序,打开浏览器,输入地址“127.0.0.1”,检查网
站搭建情况。

成功!
(二)寻找注入点
在宿主机上,打开网页5,可以正常打开页面。

进行注入测试,键入 and 1=1,返回页面不变。

键入 and 1=2,返回页面出错。

因此,可确定该网站存在注入点。

(三)判断数据库类型用系统表的方法进行判断,分别键入 and (select count(*) from sysobjects)>0 and (select count(*) from msysobjects)>0
两者返回均出错,可知是 access 数据库。

(四)猜测表名一般网站后台的管理员都默认在表 admin 中,我们先试一下,键入:
and (select count(*) from admin)<>0
返回页面正常,可知该网站后台数据库中存在着表名为 admin 的表。

(五)猜测字段名不同公司网站有不同的字段名,但一般都有三个字段,分别记录 ID 号、用户名和密码,常用的字段名为:id,username,password。

分别键入 and (select count(id) from admin)<>0
and (select count(username) from admin)<>0
and (select count(password) from admin)<>0
三者返回均正常。

可知,表 admin 中存在的三个字段:id,username,password。

注:“username”的截图损坏,但是返回正常,望教员通融。

(六)猜测管理员用户名和密码
1.确定表 admin 中有几条记录,键入 and (select count(*) from admin)=1
返回页面正常。

可知,表 admin 只有一条记录。

2.猜测用户名长度,键入 and (select len(username) from admin)=1 返回出错,继续键入 and (select len(username) from admin)=2 返回出错,继续测试3/4/5…,
直到返回页面正确。

测试到 5 的时候,返回正常。

可知,用户名长度为 5。

3.猜测用户名内容,采用 ASCII 码分析法先猜测第1 位,用二分法,键入 and (select count(*) from admin where (asc(mid(username,1,1)))between 30 and 125)<>0 返回正确,进一步缩小范围 between 70 and 100 ,between 85 and 100 ,
between 90 and 100,=97。

可知第一个字符为 a。

依此类推,猜测之后的每一位字符,
最后得到用户名为 admin。

4.猜测密码,同理: and (select len(password) from admin)=6
所以密码为6位。

最终得到密码为 6 位:123456。

(七)寻找到后台管理窗口打开“啊D”软件,点击进入“管理入口检测”选
项,点击“检测管理入口”,进行检测,
如图:打开检测到的各网址,测试是否为管理入口。

可知为管理入口,如图:
(八)登陆后台找到后台管理窗口,p,用刚刚得到的用户名和密码登陆,后台
登陆成功。

四、实验结果及分析
SQL注入攻击过程。

1) 判断Web环境是否可以SQL注入。

如果URL仅是对网页的访问,不存在SQL
注入问题,如:l就是普通的网页访问。

只有对数据库进行动态查询的业务才可能存在SQL注入,如:,其中?id=95表示数据库查询变量,这种语句会在数据库中执行,
因此可能会给数据库带来威胁。

2) 寻找SQL注入点。

完成上一步的片断后,就要寻找可利用的注入漏洞,通过
输入一些特殊语句,可以根据浏览器返回信息,判断数据库类型,从而构建数据库查
询语句找到注入点。

3) 猜解用户名和密码。

数据库中存放的表名、字段名都是有规律可言的。

通过构
建特殊数据库语句在数据库中依次查找表名、字段名、用户名和密码的长度,以及内容。

这个过程可以通过网上大量注入工具快速实现,并借助破解网站轻易破译用户密
码。

4) 寻找WEB管理后台入口。

通常WEB后台管理的界面不面向普通用户开放,
要寻找到后台的登陆路径,可以利用扫描工具快速搜索到可能的登陆地址,依次进行
尝试,就可以试出管理台的入口地址。

5) 入侵和破坏。

成功登陆后台管理后,接下来就可以任意进行破坏行为,如篡改
网页、上传木马、修改、泄漏用户信息等,并进一步入侵数据库服务器。

实验心得:
在实验的过程中遇到了很多困难,配置上的,环境上的,还有一些需要注意的小问题,而且从整个实验的过程来讲也涉及到了很多软件的配合使用。

在整个实验中遇到的最大问题就是,宿主机和虚拟机此前一直连不通,通过宿主
机ping虚拟机,一直无法连接。

直到最后我把虚拟机的防火墙关闭了,宿主机才能访问虚拟机上发布的网页。

可见,防火墙还是有一定作用的,但是对于网站来说开通了
防火墙就没办法访问网页了。

相关文档
最新文档