WebGoat通关教程

这里我们用docker镜像一键搭建即可

用docker命令开启webgoat

docker run -d -p 8081:8080 -p 9090:9090 -e TZ=Europe/Amsterdam webgoat/goatandwolf

打开192.168.109.131:8081/WebGoat和192.168.109.131:9090/WebWolf能打开即可

192.168.109.131是本地IP

WebGoat通关教程_第1张图片

WebGoat通关教程_第2张图片

直接注册一个账号,登录即可,两个页面账号是相同的

WebGoat通关教程_第3张图片

我们先设置下抓包配置

WebGoat通关教程_第4张图片

然后这两个包会一直发送,我们把它屏蔽掉

WebGoat通关教程_第5张图片

WebGoat通关教程_第6张图片

WebGoat通关教程_第7张图片

HTTP Basecs3

我们输入POST和数字,抓包

WebGoat通关教程_第8张图片

我们发现我们输入的数字是magic_answer,而magic_num估计是答案了,我们把数字123修改成17放包即可

WebGoat通关教程_第9张图片

WebGoat通关教程_第10张图片

HTTP Proxies4

我们检查元素在控制台中输入webgoat.customjs.phoneHome()会看到一串数字,输入进去即可,456046147

WebGoat通关教程_第11张图片

把POST修改成GET、添加x-request-intercepted:true,再把最下面一行删除即可

WebGoat通关教程_第12张图片

WebGoat通关教程_第13张图片

WebGoat通关教程_第14张图片

HTTP Proxies6

 

打开检查元素再go查看网络中的参数看到了一串数字输入进去即可

WebGoat通关教程_第15张图片

WebGoat通关教程_第16张图片

CIA Triad5

答案是3、1、4、2

WebGoat通关教程_第17张图片

把这串base64位解密即可获取账号密码

WebGoat通关教程_第18张图片

Crypoto Basics4


直接拿去破解即可

WebGoat通关教程_第19张图片

WebGoat通关教程_第20张图片

SQL Injection(intro)2

WebGoat通关教程_第21张图片

我们搜索Bob的first_name即可搜索到Bob所在的部门了

select department from employees where first_name='Bob';

SQL Injection(intro)3

我们从上一关看到了Tobi的first_name,使用直接构造语句修改即可

WebGoat通关教程_第22张图片

update employees set department='Sales' where first_name='Tobi';

WebGoat通关教程_第23张图片

SQL Injection(intro)4

alter table employees add column phone varchar(20);

WebGoat通关教程_第24张图片

SQL Injection(intro)5

grant alter table to UnauthorizedUser

WebGoat通关教程_第25张图片

SQL Injection(intro)9

‘、or、’1’=’1

闭合前面,再让后面的语句构成or ‘1’=’1’即可

WebGoat通关教程_第26张图片

SQL Injection(intro)10

根据上面的sql语句构造下,由于没有单引号包裹,使用不用单引号闭合,直接给出or 1=1即可

WebGoat通关教程_第27张图片

SQL Injection(intro)11

根据sql语句,可以看到用单引号包裹了,这里闭合掉再加上我们的’or 1=1 -- -

后面再注释掉即可

WebGoat通关教程_第28张图片

SQL Injection(intro)12

我们要修改金额,直接闭合然后构造语句再把后面注释掉,从而让我们的金额成为最多

'; update employees set salary=9999999 where last_name='Smith';-- -

WebGoat通关教程_第29张图片

SQL Injection(intro)13

直接构造删除表语句即可

WebGoat通关教程_第30张图片

SQLInjection(advanced)3

先闭合or 1=1遍历再查询dave的密码

'or 1=1 union select 1,'2','3','4','5',password, 7 from user_system_data where user_name='dave'-- 

WebGoat通关教程_第31张图片

SQLInjection(advanced)5

账号tom 密码thisisasecretfortomonly

WebGoat通关教程_第32张图片

SQLInjection(advanced)6

答案4、3、2、3、4

WebGoat通关教程_第33张图片

WebGoat通关教程_第34张图片

SQL Injection (mitigation)6

代码块

try{

    Connection ct = null;

    ct=DriverManager.getConnection(DBURL,DBUSER,DBPW);

    PreparedStatement ps=ct.prepareStatement("select * from users where name=?");

    ps.setString(1,"1");

    ResultSet rs=ps.executeQuery();    

} catch(Exception e){

    System.out.println("123");

}

WebGoat通关教程_第35张图片

SQL Injection (mitigation)10

爆破可知104.130.219.202

WebGoat通关教程_第36张图片

Broken Authentication

Authentication Bypasses

抓包把这两个数字修改成4,3即可

WebGoat通关教程_第37张图片

JWT tokens3

先点击垃圾桶,然后抓包,会看到access_token的值我们用base64解密下

WebGoat通关教程_第38张图片

WebGoat通关教程_第39张图片

WebGoat通关教程_第40张图片

修改成alg位none、admin为true再加密替换即可

ewogICJhbGciOiAibm9uZSIKfQewogICJpYXQiOiAxNTg0MTY2NTI0LAogICJhZG1pbiI6ICJ0cnVlIiwKICAidXNlciI6ICJUb20iCn0ewogICJhbGciOiAibm9uZSIKfQ.ewogICJpYXQiOiAxNTg0MTY2NTI0LAogICJhZG1pbiI6ICJ0cnVlIiwKICAidXNlciI6ICJUb20iCn0.

WebGoat通关教程_第41张图片

WebGoat通关教程_第42张图片

JWT tokens8

先点击delete抓包,然后把token拿到https://jwt.io/#debugger那里修改

把kid修改成' union select 'YXhpbg==' from jwt_keys where id='webgoat_key

把username修改成Tom再把payload修改成axin再把左边的复制给burpsuite最后放包即可

WebGoat通关教程_第43张图片

WebGoat通关教程_第44张图片

Password reset4

这里直接用爆破得出是green

WebGoat通关教程_第45张图片

Password reset5

看两个即可

WebGoat通关教程_第46张图片

Insecure Login2

直接用burpsuite抓包即可

WebGoat通关教程_第47张图片

我们抓包把最下面换成

]>&root;

即可

WebGoat通关教程_第48张图片

WebGoat通关教程_第49张图片

内容还是修改上一关一样,Content-Type修改成application/xml即可

WebGoat通关教程_第50张图片

WebGoat通关教程_第51张图片

Insecure Direct Object References2

直接用tom和cat登录即可

WebGoat通关教程_第52张图片

Insecure Direct Object References3

检查元素中有个profile包查看响应会看到一些属性没有的就是role、userId了

WebGoat通关教程_第53张图片

输入role,userId即可

WebGoat通关教程_第54张图片

Insecure Direct Object References4

上一关包里已经说了有个Id为2342384的用户了

输入WebGoat/IDOR/profile/2342384即可

WebGoat通关教程_第55张图片

Insecure Direct Object References5

把包7BuserId修改成2342388即可

WebGoat通关教程_第56张图片

WebGoat通关教程_第57张图片

Missing Function Level Access Control2

找到隐藏的信息即可

WebGoat通关教程_第58张图片

WebGoat通关教程_第59张图片

Missing Function Level Access Control3

根据上一关知道的users路径我们访问一下再把content-type修改成 application/json即可获取hash来通关下一关XrEegsBjm6AGpHjw+HOvSVXifKbsyzqz63Nx9TTDrzQ=

WebGoat通关教程_第60张图片

WebGoat通关教程_第61张图片

Cross Site Scripting7

当我们点击UpdateCart的时候会输出我们的卡号,直接输入我们的xss语句即可

WebGoat通关教程_第62张图片

Cross Site Scripting10

输入start.mvc#test/即可

WebGoat通关教程_第63张图片

Cross Site Scripting11

根据上一题的构造url

http://192.168.109.131:8081/WebGoat/start.mvc#test/webgoat.customjs.phoneHome()访问

可以看到一条语句,我们检查元素在控制台中输入webgoat.customjs.phoneHome()看到回显就是答案了提交即可

WebGoat通关教程_第64张图片

WebGoat通关教程_第65张图片

Cross Site Scripting12

 

答案是4、3、1、2、4

WebGoat通关教程_第66张图片

Cross-Site Request Forgeries3

先提交数据,抓包,生成poc,用浏览器测试,复制到url中,点击即可

WebGoat通关教程_第67张图片

WebGoat通关教程_第68张图片

WebGoat通关教程_第69张图片

WebGoat通关教程_第70张图片

WebGoat通关教程_第71张图片

Cross-Site Request Forgeries4

方法和上一关一模一样

WebGoat通关教程_第72张图片

Cross-Site Request Forgeries4

自己在本地搭建个html访问即可

WebGoat通关教程_第73张图片

Cross-Site Request Forgeries8

这一题按照题目要求,注册个csrf-开头的用户,比如我的用户名为tntaxin,然后我再注册一个csrf-tntaxin,然后登录csrf-tntaxin访问这道题目,点击solved就过了,当然这题的真实目的是希望你构建一个csrf 恶意链接,然后访问这个链接就会自动登录csrf-tntaxin这个账户,这样受害者的访问记录你就都知道了。

Server-Side Request Forgery2

抓包把image改成images%2Fjerry.png即可

WebGoat通关教程_第74张图片

Server-Side Request Forgery3

同样抓包,就是把url换成http://ifconfig.pro即可

WebGoat通关教程_第75张图片

WebGoat通关教程_第76张图片

Bypass front-end restrictions2

把参数简单修改下即可

WebGoat通关教程_第77张图片

WebGoat通关教程_第78张图片

Bypass front-end restrictions3

简单抓包加些字母,绕过前端即可

WebGoat通关教程_第79张图片

WebGoat通关教程_第80张图片

Client side filtering2

检查元素发现有个Bartholomew用户的信息,看到了工资是450000,输入即可

WebGoat通关教程_第81张图片

Client side filtering3

点击Buy,抓包发送会看到code,正确的Code是get_it_for_free输入即可

WebGoat通关教程_第82张图片

WebGoat通关教程_第83张图片

WebGoat通关教程_第84张图片

HTML tampering2

我们把数字增多,以最低的价格买最多的家具

WebGoat通关教程_第85张图片
WebGoat通关教程_第86张图片

Admin lost password2

这个是要爆破的,密码是:!!webgoat_admin_1234!!

再把flag提交上去

WebGoat通关教程_第87张图片

Without password1

用任意密码通过即可

1' or 1=1 -- -

WebGoat通关教程_第88张图片

Without account1

我们直接评价抓包,把请求改成HEAD,就看到了flag,我们复制提交上去即可

WebGoat通关教程_第89张图片

 

 

 

 

你可能感兴趣的:(安全)