您好,欢迎访问三七文档
甘肃政法学院本科生实验报告(四)姓名:王岳学院:公安技术学院专业:信息安全班级:12级信息安全本科班实验课程名称:网络攻击与防御实验实验日期:2014年12月9日指导教师及职称:金涛实验成绩:开课时间:2014-2015学年第一学期甘肃政法学院实验管理中心印制实验题目Access工具注入实、PHP手动注入实验Access手工注入实验、SQLServer数据库注入实验、缓冲区溢出攻击初级实验小组合作否姓名王岳班级信息安全班学号201283120131一、实验目的1.通过手工注入获得后台管理权限2.了解SQL注入的基本原理。3.了解手动注入的各种常用SQL语句和注入流程。4.通过使用注入工具获得某网站的后台权限5.了解SQL注入的基本原理。6.掌握啊D注入工具的使用方法。7.了解工具的各项功能8.能举一反三,使用其他类似工具完成注9.通过手动注入PHP页面,获取password字段名。10.了解PHP手动注入的基本原理。11.了解PHP手动注入的过程和基本常用SQL指令。12.通过工具注入,获得网站管理权限13.了解SQL注入的基本原理。14.了解注入工具的各种常用子功能。15.复习逆向基本知识,掌握栈在程序中的使用和结构。16.学习缓冲区溢出基本原理,阅读缓冲区溢出基础文档,了解栈溢出的攻击过程。17.回忆Ollydbg用法,会使用OD调试漏洞。二.实验环境计算机三.实验步骤与内容注入实验1、找到有注入漏洞的目标网站在本实验中预先配置好一个目标网站(雷驰新闻系统),访问该网站,点击某条新闻,做是否存在注入漏洞的测试,操作如下:图1目标网站页面在地址栏地址后输入and1=1,查看结果,结果如下:图2是否有注入漏洞探测说明:页面仍能正常显示,说明未对特殊字符进行过滤,存在注入漏洞。再在地址栏地址后输入and1=2,查看结果,结果如下:图3是否有注入漏洞探测说明:对于永假的查询式没有提示过滤,说明存在注入漏洞。2、猜测表名由于存在SQL的注入,即可通过多条查询语句来试图获得管理员的用户名和密码。在某条信息地址栏后添加and0(selectcount(*)fromadmin)猜测是否存在admin这个表。(根据经验,大多数程序员习惯把管理员的用户名和密码存在类似admin这样的表中),提交结果如下:图4猜测表名说明:页面能正常显示,表示存在admin的表,当然若出错,则需要在刚才的SQL语句中更换admin,换成其他常用的表段名,进行猜测(如user、manage等)3、猜测字段名同样的方法探测在admin表中存在的字段,典型字段有admin、username、password、pass等,下面以pass为例进行探测。在地址栏最后输入:and1=(selectcount(*)fromadminwherelen(pass)0),提交后结果如下:图5猜测字段名1(出错信息)说明:页面返回出错信息,说明在admin表中不包含pass字段,需要再做猜测。同样也可以用其他SQL语句猜测password字段,如:and(selecttop1len(password)fromAdmin)0提交后返回的结果如下:图6猜测字段名(正确页面)说明:页面正常显示,说明存在password的字段4、字段内容的获取。一般来说,手动注入通常采用Ascii逐字解码法,虽然这种方法速度很慢,但肯定是可行的方法。以password字段为例,猜测字段内容:首先猜测管理员ID,测试管理员ID一般网站的管理员不是很多的,ID也不是很大,依次用1、2、3......测试,很快就能测到,具体测试语句为:and(selectcount(*)fromadminwhereid=1),变换最后的数字1进行测试,直到能正常返回原页面为止。密码长度使用类似and(selectcount(*)fromadminwhereid=1andlen(password)=4)的查询语句,若页面返回正常,则猜测正确。在本例中我们多次尝试,最后使用and(selectcount(*)fromadminwhereid=9andlen(password)=2)。页面返回正常,如下图:图7字段内容猜测说明:由此知道有个admin的密码为2位数,同样的方法可以猜测admin字段的长度。再开始猜测内容,·我们猜测他admin表段的username字段的第一位内容是不是a内容一般都是英文或数字或两者混合·我们先猜是否是a因为a是26英文中第一个字母,也是admin(超级用户)的第一个字母and1=(selectcount(*)from[admin]wheremid(usrname,1,1)='a'),返回MicrosoftOLEDBProviderforODBCDrivers错误'80040e10'[Microsoft][ODBCMicrosoftAccessDriver]参数不足,期待是1。/news/view.asp,行5说明我们猜错了他的第一个字符不是a,以此类推,直到检测到正确内容。由于猜测字段内容是一个很长的过程,所以,大多数情况下,借助工具操作更为简单。注意:这种方法只适合于对明文存放的密码的猜测,如果使用密文存放,则猜测的难度会更大(该部分内容会在工具注入部分进行描述)。2、获取权限,以管理员用户身份登陆一般来说查找管理员入口是手动注入的一个难点,有的网站上在页面首先会显示管理员入口的链接,此时只需要在管理员页面输入猜测得到的管理员用户名和密码,即可登陆。但若管理员入口不明,则需要通过尝试的方法获取,这种尝试是一种经验的尝试。例如admin页面,adminlogin页面、admin/admin页面等。在本试验中,尝试用admin页面,页面返回错误,则说明管理员入口不是该页面,再尝试admin/adminlogin.asp页面找到入口。输入猜测到得用户名和密码,进入管理后台。如下图:图8后台登录界面1、了解工具文件夹内容组成下图为啊DsqlTools工具的文件夹组成图1软件所在文件夹说明:可以看到该工具有表段名、字段名等多个文本文件,这些文本文件就是SQL注入猜测的字典,有的注入工具的字典内容可以进行人工的添加和删除,以达到更好的猜测效果。2、注入点检测运行软件,首先选择菜单中的“注入点检测”,在网站地址栏输入需要探测注入点的地址,点击“打开”,如下图:图2查看是否有注入点说明:若存在可以注入连接,会在页面下部显示连接的地址。3、SQL注入检测SQL注入检测有两种方法,一种,直接选中注入点检测后的注入连接结果,点右键,选择“选择本链接”即进入SQL注入检测。如下图图3注入点检测图4注入点检测2说明:若事先已经知道注入点,则可直接运行“SQL注入检测”菜单,输入注入点地址,注意:该注入点地址必须是带?的地址。上图结果可以看出已猜测出数据库为access数据库。4、检测表段内容如果存在注入漏洞,则检测表段的按钮会变成可操作键(对比旁边灰色按钮的“检测字段”)。点击“检测表段”,工具将自动检测可能得表名。如下图:图5表检测说明:检测出的表段内容是根据工具自带的表名字典决定,所以不一定能够探测出该数据库所有表名。5、检测字段选择需要猜测的表名,再点击“检测字段”。在本实验中目的为获取管理员帐户和密码,所以选择admin表进行猜测,如下图。图6字段检测说明:检测出的字段内容是根据工具自带的表名字典决定,所以不一定能够探测出该表的所有字段名。6、获取字段内容探测结果看,因为有admin字段,估计该字段应该存储用户名(当然,user也可能存储用户名),首先确定admin字段中有几条记录,工具默认“检测TOP”,表示检测首条记录,个人也可以通过“检测指定ID”获取可用ID以确定记录条数,如下图:图7检测字段内容从检测结果可以看出,admin表中有两条记录,分别是ID为9和ID为10的记录。随后检测指定ID的内容:选择需要检测的ID,点击“检测内容”,得到用户名“OK”,如下图:图8admin字段内容检测结果说明:另一种方法,可以直接选择“检测TOP”,通过检测内容旁的数字来猜测每条记录的内容。(改为2,即是猜测第2条记录的内容)。同样的方法,可以对password进行猜测,得到内容,如下图:图9password内容检测结果说明:注意admin与password应该是对应的,如果已经检测出ID为9的用户名,相应地就应该猜测ID为9的用户的密码。还需要注意的是,该检测的内容是数据库中存放的内容,如果该密码进行了加密,则检测出的是加密后的内容。用户需要根据加密内容的特征来猜测原密码。7、获取管理员入口有的管理员入口是写在首页上,直接点击即可进入,本例中管理员入口在首页上未见,因此需要探测管理员入口。选择工具菜单上的“管理入口”,点击“检测管理入口”,工具会自动搜索管理入口。如下图:图10获取管理员入口从结果框可以看到搜索出可能的两个管理入口,同时也能可以在连接表中看到这两个连接前是。逐一选择后,点右键,在菜单中选择“在IE中打开链接”,如果页面返回成功则管理入口找到。如下图:图11打开管理员入口图12后台界面说明:后台管理入口的猜测也是工具从后台入口字典中获取。8、进入后台用之前猜测的用户名、密码进入后台。并通过增加管理员用户,或上传后门、木马完成进一步的提权操作。图13进入后台图14修改、添加管理员实验总结通过对access数据库的工具注入过程的研究,我们应了解工具注入的过程及工具的不同子功能的使用。工具注入的原理跟手动注入有类似之处,如以上实验所采用的工具中,打开,可以看到如下图的信息,其实就是之前手动猜测的各种SQL语句。实验步骤1、点击目标网站=1图1页面图2、探测是否有注入漏洞在地址栏后加入and1=1或者and1=2,查看页面情况,如果页面无异常,表示存在注入,否则需要进一步探测是否存在漏洞。图2探测是否有注入漏洞3、确定mysql的版本在地址后加上andord(mid(version(),1,1))51/*返回正常说明是4.0以上版本,可以用union查询图3判断mysql版本号4、判断字段个数在网址后加orderby2/*如果返回正常说明字段大于2,再试3,4,5.(不一定是连续的数)。一直到报错为止图4判断字段数1图5判断字段数2(出错信息)5、判断数据库连接帐号有没有写权限通过尝试数据库连接时使用的用户名、密码是否在表中,判断是否对数据库有写的权限。操作方法,在网址后加入and(selectcount(*)frommysql.user)0,若返回正确,则拥有该权限,若返回错误,则需要重新猜测管理员名称和密码。图6判断是否拥有写权限6、猜测管理员表在网址后加and1=2unionselect1,2fromadmin/*判断管理员表是否叫admin,如果返回正常,说明存在这个表;若返回错误,则需要重新猜测表名。图7判断管理员表名7、猜测字段名与asp注入不同,在猜测字段的时候如果字段猜测成功,PHP会直接显示字段的内容,而不需要再猜测字段内容。操作方式:在网址后加入and1=2unionselect1,passwordfromadmin/*猜测是否有password字段,如果有则显示其内容。从图中看到,因为只有1条记录,所以password的内容已经显示出来了,如果没有这个字段,则会报错,若没有记录则返回空图8猜测字段名,将字段内容显示1、找到有注入漏洞的目标网站在本实验中预先配置好一个目标网站(某新闻发布系统),访问该网站,并运行注入工具啊D注入工具V2.31,在该工具的文件夹中同样有一个mdb的数据库,里面存放了预先设定好的表名、字段名、字段内容等字典。点击右边菜单中的,在检测网址处输入目标网站地址,点击,运行网站,并自动检测注册点。如下图:图1注入漏洞检测图2注入漏洞检测结果说明:在实际攻击中,若受网速等原因影响,目标网站打开速度过慢,可以选择打开网页,表示,停止打开网页,并检测注入点。由上图的结果可以看出,红
本文标题:网络攻防实验4
链接地址:https://www.777doc.com/doc-6147466 .html