用户
搜索

[思路/技术] 小白入门webgoat8(一)

  • TA的每日心情
    开心
    2019-8-3 12:48
  • 签到天数: 183 天

    连续签到: 1 天

    [LV.7]常住居民III

    i春秋作家

    i春秋吹牛党

    Rank: 7Rank: 7Rank: 7

    89

    主题

    445

    帖子

    2295

    魔法币
    收听
    5
    粉丝
    7
    注册时间
    2015-11-20

    核心白帽i春秋签约作者春秋文阁突出贡献

    发表于 2019-8-2 09:08:39 25861
    本帖最后由 细心 于 2019-8-2 01:08 编辑

    本来想写webgoat8 25版本的,但是下载以后发现和我本地的java环境不搭,没有办法找了一个搭的就是21,当然了你要是升级java了也可以下载25看看


    首先我们先去github找到webgoat8的下载地址下载他。
    1.png

    去github搜索webgoat8 就可以了
    使用java命令启动(java- jar webgoat8 后面的--server.port=80是启动指定端口)

    2.PNG

    发现我们启动以后不知道登陆密码,但是我们根据下面的英文提示可以注册一个证号
    3.png

    4.png

    根据其规则注册一个好用的证号,这里是弱口令这里仅限于没有联网的实验环境,物理现实中你要是这么看就自求多福吧!
    5.png
    用我们的注册登陆密码登陆进来
    查看最基本的信息,英语不好就用翻译软件吧,很多还是不错的



    7.png
    我们根据器英文提示发现他要使用owasp-zap这里我们使用的是burp这些东西我建议大家都看一下很有用的(新手朋友们,大佬直接飘过吧)

    8.png

    开启burp监听8080端口burp简单测试社区版就够了
    9.png

    在火狐设置代理转换插件这里使用的是看图

    10.png
    如何建立监听端口

    11.png

    在浏览器上切换
    12.png
    我们来进行第一关,根据英文我们来理解他是要干嘛!
    通俗理解他就是一个http的传输过程我们也可以用burp来加强理解


    14.png

    15.png

    16.png
    3随机数的验证,或者说基础绕过验证

    17.png
    当我们随机数输入不对的时候给出的答案如下图
    18.png
    我们通过研究对比发现Magic_nummagic_answer是随机数的关键前者是生成的随机数,后者是验证要用的随机数后者要等于前者,因此我们用前面的知识使用burp改包完成随机数验证
    19.png

    其实还有一种方法我们通过burp发现他是在前端显示生成的,因此我们有理由怀疑前端搜索关键字Magic_num可以发现生成的数值,对于防御来说不要在前端显示生成任何用于验证的内容

    20.png
    sql注射
    sql注射根据通关我们要从高级开始,但是我感觉我们应该才基本的开始


    21.png

    从基本的sql注射开始
    我们先看最基本的英文介绍从第一看到第6


    22.png

    16都是,英文你要是看不懂用个翻译插件,要是还不懂我们只能从最基本的开始
    你可以去看sql注入与防御一书,假如看了还是一知半解可以看数据库概论,深入了解数据库操作,不管什么程序前端显示交互操作,最后都是显示操作的后端数据库上。

    7这里显示了后台数据库代码或者说是查询的调用,我们根据这个sql语句发现“‘”单引号用户名,我们想让这个sql语句执行我们的查询语句,首先我们就要闭合原来的查询语句
    然后利用 and或者or逻辑关系执行我们后带入的sql语句,比如admin’or ’1’=’1 其中admin是闭合前面的语句orsql语句的运算符后面证明的是1=1(这里涉及到字符串和数字的内容)后面没有是闭合后面的单引号

    23.png

    24.png

    8是数字型注入,我们按照数字注入的格式写入代码就可以了
    25.png

    高级注入我们根据前面所学的内容然后在这里输入得到输出数据同时在检测password的位置检测,就可以了



    26.png 27.png

    上面是得到的结果

    盲注,同理我们先看介绍的英文

    28.png
    29.png

    根据前面学到的知识我们来到这里发现登陆这里无计可施
    幸运的是有注册功能于是我们就去注册哪里

    30.png

    我们根据输入的内容,返回的提示警告来判断是否可以使用

    31.png

    根据1=1的时候说明用户已经存在了

    32.png
    1=2说明要注册创建

    User tom ' and 1=2 -- created, please proceed to the login page.
    用户tom'和1 = 2  - 创建,请进入登录页面。
    返回的数值不一样
    我们根据其返回值做一个判断


    然后我们知道了用户存在那么我们就要知道用户的密码根据前面学到的知识我们构造
    User tom ' and length(password)<20 -- created, please proceed to the login page.

    用户tom'和长度(密码)<20  - 已创建,请进入登录页面。
    这个语句是判断密码的长度,
    33.png


    34.png
    User tom ' and length(password)=23 -- already exists please try to register with a different username.

    用户tom'和长度(密码)= 23  - 已存在请尝试使用其他用户名注册。
    根据提示我们得到 password是23个字符
    我们根据字符知道了密码字段,那么我们就要知道字段内容根据前面的内容我们开始跑字母
    User tom ' and substring(password,1,1)='a' -- created, please proceed to the login page.

    用户tom'和substring(密码,1,1)='a' - 已创建,请转到登录页面
    35.png

    User tom ' and substring(password,1,1)='t' -- already exists please try to register with a different username.

    用户tom'和substring(密码,1,1)='t' - 已存在请尝试使用其他用户名注册。
    36.png

    说明t是第一个字母,这就是盲注条件判断

    然后后面的依次类推

    37.png

    38.png

    根据上面的套路慢慢试吧,23个字符
    密码对了以后我们就可以登陆了如图
    39.png

    xss注入
    首先我们还是先看英文的简介

    40.png
    2xss问cookie一个域是一样的吗,你可以使用“JavaScript:alert(document.cookie);”
    41.png

    我们在控制面板测试
    42.png

    所以我们选择yes
    43.png
    3英文开始说一般哪里有xss这些都是xss常识
    44.png

    45.png

    上面这些推荐大家好好看一下,因为基础我就不在截图了


    第一个反射性xss我们在信用卡哪里输入"<script>alert('my javascript here')</script>"来完成xss
    46.png

    47.png

    我们还可以使用burp抓包来发现了解xss过程
    48.png
    没有转码返回给客户端

    49.png
    然后在客户端查看xss代码
    50.png


    dom型xss 我们先提交一下发现他有提示我们根据提示打开这个js文件
    51.png

    根据js我们查看test这里 然后输入Start.mvc#test/就可以通过
    53.png

    下一关也是要查看GoatRouter.js代码大家可以通读多分析

    52.png


    我们根据GoatRouter.js的内容 在控制台构造输入得到随机phone然后提交通过
    54.png

    55.png

    图有可能有点乱大家自己去查看js代码


    存储性xss意思是应该用存储在数据库中,而根据其英文内容我们就是把前面的js页面内容写入这个留言版就可以了
    56.png

    这样每一次运行都可以得到数值。




    未完待续:
    下一次 写安全验证问题





    命运是自己拼出来的!&quot;>&quot;>&quot;>&quot;>&quot;>&quot;>alalertert(sss);
    本帖最后由 琴心丶剑胆 于 2019-8-10 15:19 编辑

    大佬能看下challenge的第一关Admin lost password怎么过吗?网上都说这关过不了,我是一点思路都没有
    使用道具 举报 回复
    发表于 2019-11-13 19:04:11
    琴心丶剑胆 发表于 2019-8-10 07:11
    大佬能看下challenge的第一关Admin lost password怎么过吗?网上都说这关过不了,我是一点思路都没有{:3_49 ...

    好的,你过了吗?我刚登陆看到
    命运是自己拼出来的!&quot;>&quot;>&quot;>&quot;>&quot;>&quot;>alalertert(sss);
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册