webgoat安全攻防靶场小白test

参考地址:https://www.freebuf.com/articles/web/221947.html

一、webgoat是什么?

WebGoat是OWASP维护的,用于进行WEB漏洞测试和学习的JAVA应用程序

owasp是开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个组织,它提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息。其目的是协助个人、企业和机构来发现和使用可信赖软件。

二、我们能用webgoat做什么?

安全测试项测试,包括xss,sql注入,等

三、安装

1.访问链接https://github.com/WebGoat/WebGoat/releases

选择图上的server和wolfjar包下载

2.将文档存储到一个文件夹内,在文件夹路径中cmd打开命令页面

输入java -jar 包名

如果需要修改server的默认监听端口8080

java -jar webgoat-server-8.0.0.M14.jar --server.port=8000 --server.address=0.0.0.0

启动后访问路径http://127.0.0.1:8080/WebGoat/login

3.注册一个账号,然后登录

四、进入正题

 

 

1.introduction(介绍)

第一部分是测试的分类,第二部分是每个分类的具体介绍和课程,第三部分就是具体的内容

introduction下面分为两个部分

第一个webgoat介绍了webgoat的是什么,可以翻译看看

第二个webwolf是让启动webwolf后,使用webgoat的账号登录,里面包括了一些邮件文件等功能,联合webgoat使用,可以作为攻击接受点

第一部分的webgoat是介绍

第二部分是webwolf的题

红色的表示没有通过的。绿色的表示通关了。灰色是介绍和一些教程

第三关要求填写你当前账号的邮箱,发送后在webwolf中去找到邮件里面的字符串

点击send e_mail后检查邮箱,这里我获取了两次,有两封邮件

找到code

将code输入下方的输入框,即可通关

第四关是让去webwolf中找到uniq code 提示了在/landing分类下

在webwolf中找到该uniq输入即可通关

第二类.http协议的介绍

第二关:将输入的值返回到页面上就算通关

第三关:这一关会用到上一关的请求数,在上一关发送请求之前,f12按出控制台,查看network 。将post输入,问题是下一个问题,什么是magic number

将post输入后,点击提交按钮,查看控制台的请求发现,在请求中存在一个magic number的数字,再次填入该数字,再次提交,提交成功

第六关的代理不知道为什么我的burpsuite没办法抓取本地的,修改了占用的8080端口也不行,算了直接进入下面吧

第三类 sql injunction  

sql injunction(advance)这个,这个!最难的放到前面感觉不太合适啊(#`O′)。算了先讲吧

第三关:获取dave的密码

首先,我们可以通过第一个查询框,查询出一些信息,比如说全部的人员信息,哎你可能要问了,我填入的名字都不对啊,我都不知道数据库有哪些成员,怎么查询嘛

我们可以猜测,这一句sql的查询大概是:select * from userdata where username='xx'

那么我们要想,我们目前的输入框就是xx这个,如何让xx发挥最大的作用呢,那就是利用sql查询语句的特点,我们可以构造如下的一sql语句:

select * from userdata where username='a' or '1'='1

那么我们需要在查询的框内填入a' or '1'='1    ,,'1是为了和后面的'拼接

a'让最开始的查询语句先闭合,然后再拼接一个查询语句 or '1' ='1,让其成为一个比之前的查询语句更多的查询语句

执行一下:

执行出来了!但是我们仔细看没用dave的信息,dave的信息从哪儿来呢,看上面的表,上面提供了一个表

表中提供了三个字段,其中包括了password,那么我们想,既然上面随便改改sql的查询都能顺利查出来,那么,再魔改一下也是可以理解的吧,于是开始使用联合查询union,查询出两个表吧!

Smith' union select 1,user_name,password, cookie,'5','6',7 from user_system_data --'

照例,先闭合,然后union上面的表,这里注意,由于本来这张表的字段有七个,为了能联合查询出来,上面的表只有三个字段,由于这张表的第一个字段是数字,用1填补就好了,从第五个字段开始,是字符串,需要引用起来,然后最后一个是0,好像也是数字,用7填补,然后--表示之后的都不执行,最后一个单引号闭合查询,也可以不用,毕竟已经用了--

试试吧!

yes!那么我们可以查看字段,dave的密码是dave,填到下面试试

完成!

第五关,有点意思,发现登陆没有什么注入的,用语句tom' --去尝试没有用,从注册可以得到一些注入信息

在注册界面,输入已经有的名字,点击注册报的是已经存在,输入没有的就是提示登录。那么我们可以将代码写成这样

tom ' and length(password)<19 --

该语句可以判断密码的长度,如果密码的长度为19则会提示已经存在,否则则会提示创建成功.依次尝试

尝试tom ' and length(password)=23 --  啊啊成功了

接下来再判断每一位的字母是什么

tom ' and substring(password,1,1)='t' --   t被试出来了,第一个字母是t

这里放一篇博主的文章,我因为代码能力有限懂个原理就行

https://bbs.ichunqiu.com/thread-53099-1-1.html

SQL INJUNCTION终于轻松一点的来了

第七关:字符串的注入

提示为字符串,那么需要用引号引起来,输入1' or '1' ='1

第八关:数字的注入

输入1 or 1=1 就ok

SQL INJUNCTION(MITIGATIO)

第八关:orderby查询

贴上大神地址,太多了,需要时间去验证(我的burpsuite无法拦截本地请求)

https://blog.csdn.net/weixin_30311605/article/details/98779527?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159548565419724843337404%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=159548565419724843337404&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v3~rank_ctr_v4-7-98779527.ecpm_v1_rank_ctr_v4&utm_term=webgoat+sql%E6%B3%A8%E5%85%A5&spm=1018.2118.3001.4187

 

XXE

第三关需要将拦截到的请求修改成xml提交

第四关需要将拦截到的请求类型修改然后提交

第七关有空再完善吧,照例贴上地址,实在是拦截不到请求

https://www.freebuf.com/articles/web/221947.html

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值