OWASP Security Shepherd 解法
本文最后更新于 607 天前,其中的信息可能已经有所发展或是发生改变。

不安全的直接对象引用

1 1024x555.png-

点击刷新的个人资料并用burpsuite抓包

2.png-1

将username参数guest改为admin并发送,获取key

3.png-2

失效的数据认证

4.png-3

根据题意输入负数,结果报错

5.png-4

F12查看源码,发现前端验证,可以绕过

6.png-5

先输入一个整数提交并抓包

7.png-6

然后在burp中修改为负数提交

8.png-7

获取到key

安全性设定缺失

9.png-8
10.png-9

用户名爆破出admin

11.png-10
12.png-11

密码爆破出password

13.png-12

失效的会话管理

14.png-13

点击完成该课程并抓包

15.png-14

发现cookie中多了个lessionComplete参数,试着把值改为lessionComplete,把Not删除能否完成

16.png-15

结果成功

没有限制URL访问

17.png-16

一看就是有隐藏内容,直接F12查看源代码

18.png-17

发现隐藏页面

19.png-18

进去发现空白?

往下拉

20.png-19

跨站脚本 (XSS)

21.png-20

直接<script>alert(1)</script>试试

22.png-21

成了!

跨站脚本 (XSS) 1

23.png-22

还是老样子<script>alert(1)</script)试试

24.png-23

发现不行,换个方式<img onerror="alert(1)">试试

25.png-24

成功!

不安全的加密存储

26.png-25

这明显是个base64密码,直接解密

27.png-26

SQL 注入

28.png-27

随便输个错误字符试试

29.png-28

发现报错,可能有SQL注入

30.png-29

闭合字符串注入1'or'1'='1

不安全的加密存储 1

31.png-30

感觉像凯撒密码

32.png-31

发现熟悉的The,应该就是这个:后面的是key

不安全的直接对象引用 1

33.png-32

随便选中一个提交,抓包

34.png-33

没什么异常,依次往下尝试

35.png-34
36.png-35

发现是奇数增加,用burpsuite更改为11,提交

37.png-36

失效的数据认证 1

38.png-37

题目要求免费买个trolls的脸,就是第三个,直接买1个trolls再买-100个最后一个,看能不能抵消掉

39.png-38

直接成功

SQL 注入 1

40.png-39

发现单引号不行了,试试双引号字符型

41.png-40

报错,直接注入真值1"or"1"="1

42.png-41

成功

会话管理 1

43.png-42

直接点击按钮,显示我不是管理员,直接抓包看看

44.png-43

Cookie多了个checksum参数,值看着像base64解密

45.png-44

试试改为administrator,为什么不是Admin,因为题里给了提示,只有administrator才能看

46.png-45
47.png-46
48.png-47

成功

没有限制URL访问 1

49.png-48

点击按钮什么反应都没有,抓个包

50.png-49

依旧是熟悉的checksum,改下试试

51.png-50

竟然没反应!试了Admin,administrator都无反应

只好从源代码下手看看

52.png-51

好家伙,竟然有两个提交函数,其中一个是Admin,肯定是这个了

53.png-52

把两个提交按钮的标签换一下,点击按钮

54.png-53

完美

跨站请求伪造 (CSRF)

55.png-54

emmmmm,直接复制链接,改userId试试

56.png-55
57.png-56

成功

未验证的重定向和转发

58.png-57

将重定向的URL和请求URL组合起来https://192.168.223.148/user/redirect?to=https://192.168.223.148/root/grantComplete/unvalidatedredirectlesson?userid=exampleId

把exampleId更改为自己的id

59.png-58

SQL 注入 2

60.png-59

题目说是Email,那就按邮箱格式注入

payload:'or'1abc@abc.com

61.png-60

在邮箱前面加个1,是真值

NoSQL 注入 1

62.png-61

点击按钮就是普通的回显,抓包看看

63.png-62

题目说是SQL注入,那就试试吧

在发送的数据后加个'试试能不能注入

64.png-63

报错了,现在只要返回值为真就能查询所有数据了

构建NOSQL payload:';return true;'

65.png-64

得到所有信息

66.png-65

题目要Marlo的GamerId

SQL 注入转义

67.png-66
68.png-67

单引号双引号都被过滤了,题目说注入转义,那我引号转义一下试试?

69.png-68

成了

不过这题的payload要变一下,加个注释把后面的引号注释一下1'or"1"="1"#

70.png-69

会话管理 2

71.png-70

题目说了admin,那就试试admin登录

72.png-71

不出所料密码错误,密码爆破应该不可取,下面有个忘记密码找回,点击看看

73.png-72

输入上面显示的邮箱

74.png-73

提示密码重置请求已发送,F12看看请求

75.png-74

显示改变成这个,那试试这个密码

76.png-75

跨站请求伪造 (CSRF) 1

77 1.png-76

题里给了个很重要的提示

任何用户都能增加你的计数器,除了你自己

所以我们创建个小号,用小号的cookie来访问这个链接

https://192.168.223.148/user/csrfchallengeone/plusplus?userid=exampleId

exampleId换成要过关的Id,不能用自己的账号访问自己的链接

78.png-77

显示成功,登录自己账号去看一眼

79.png-78

显示key了

SQL 注入 3

80.png-79

输入单引号报错,应该能注入

81.png-80

没用,试试其他语句,来源 手工SQL注入(二)

82.png-81

好家伙,终于让我试出问题了,原来是or被过滤了,那就只能不用or语句了

根据上面链接的内容进行注入,首先注入出当前数据库

83.png-82

查看数据库内表名

84.png-83

竟然没权限。。。

只好从题入手,看看有没有提示

85.png-84

这几个标紫的单词应该暗示着表、数据库和字段

credit card numbery应该是要查询值的字段,customers应该是表名,customer name应该是查询的条件,Mary Martin应该是要查询的人,题里也提示要Mary的信用卡号作为key提交

构建payload:1'union select creditCardNumber from customers where customerName='Mary Martin'#

86.png-85

成功了

其实payload可以简化一些,,不用刻意增加条件,直接1'union select creditCardNumber from customers#

87.png-86

不过不知道哪个是题要的,而且提交错误也扣分

88.png-87

直接用*也不行,因为只回显一个字段

评论

  1. Avatar photo
    博主
    3 年前
    2021-11-16 14:46:55

    让我康康CSRF!!

  2. Avatar photo
    niukunqi
    3 年前
    2021-11-17 16:42:48

    大佬牛🍺

  3. Avatar photo
    溺死的鱼
    3 年前
    2021-11-18 11:44:26

    大佬666

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
贴吧
颜文字
Emoji
小恐龙
花!
贴吧
上一篇
下一篇