Cross Site Scripting Challenge One

<img οnerrοr=alert(`lalala`);>

What is SQL Injection?

admin’ or '1=1

Insecure Cryptographic Storage Challenge One

加密方式:Caesar cipher
解密工具:https://www.dcode.fr/caesar-cipher

Poor Validation 1

这题是不是有bug(填1*3000 and -100*30)

Broken Authentication and Session Management Challenge One

需要改两处
① 图二选中部分(参数checksum的value已用base64加密,解密后如图一所示)
② 请求主题后两个参数为true


根据分析源代码推测,正确连接为下图选中部分:4a1bc73dd68f64107db3bbc7ee74e3f1336d350c4e1e51d4eda5b52dddf86c992

如下图所示,将选中部分替换即可。

SQL Injection Challenge One

Hint:

SELECT * FROM customers WHERE customerAddress ='xxx';

后台应该有邮箱格式校验,故需满足邮箱格式条件(注意不能有空格):

What are Unvalidated Redirects and Forwards?

https://9.112.73.26/user/redirect?to=https://9.112.73.26/root/grantComplete/unvalidatedredirectlesson?userid=465030851

Broken Authentication and Session Management Challenge Two

本题参考的网上回答。

CSRF 1

这个需要把自己加到一个class里面,再注册一个用户A同样加到该calss里面。然后使用用户A发送GET请求,请求的URL是:(需要替换为自己的id)

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

Broken Authentication and Session Management Challenge Three

输入admin,点击sign in,修改请求中的如下cookie参数value为:WVdSdGFXND0=。

此参数通过base64进行了二次加密,如图所示:

Cross Site Scripting Challenge Two

答案:

<input type="button" onmousemove="alert('qwer')" />

解析:事件被过滤了,试了几个onmousemove和onmouseup都可以。。。onerror不行
HTML 事件参考手册:HTML 事件参考手册 (w3school.com.cn)

Insecure Cryptographic Storage Challenge Two

答案:TheVigenereCipherIsAmethodOfEncryptingAlphabeticTextByUsingPoly
解析:
加密方式:维吉尼亚加密维吉尼亚密码在线加密解密 - 千千秀字


解密需要密钥,密钥和加密后的value都需要在源代码里面找到。
thekey是密钥

theKey = “kpoisaijdieyjaf”;

DwsDagmwhziArpmogWaSmmckwhMoEsmgmxlivpDttfjbjdxqBwxbKbCwgwgUyam是加密后的value

if(output == “DwsDagmwhziArpmogWaSmmckwhMoEsmgmxlivpDttfjbjdxqBwxbKbCwgwgUyam”)

页面JS部分源代码如下:

$("#leForm").submit(function(){//2D encryptionvar input = $("#resultKeyAttempt").val();**theKey = "kpoisaijdieyjaf";**var theAlphabet =   "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz";// Validate theKey:theKey = theKey.toUpperCase();var theKeysLength = theKey.length;var i;var adjustedKey = "";for(i = 0; i < theKeysLength; i ++){var currentKeyChar = theAlphabet.indexOf(theKey.charAt(i));if(currentKeyChar < 0)continue;adjustedKey += theAlphabet.charAt(currentKeyChar);}theKey = adjustedKey;theKeysLength = theKey.length;// Transform input:var inputLength = input.length;var output = "";var theKeysCurrentIndex = 0;for(i = 0; i < inputLength; i ++){var currentChar = input.charAt(i);var currentCharValue = theAlphabet.indexOf(currentChar);if(currentCharValue < 0){output += currentChar;continue;}var lowercase = currentCharValue >= 26 ? true : false;currentCharValue += theAlphabet.indexOf(theKey.charAt(theKeysCurrentIndex));currentCharValue += 26;if(lowercase)currentCharValue = currentCharValue % 26 + 26;elsecurrentCharValue %= 26;output += theAlphabet.charAt(currentCharValue);theKeysCurrentIndex =(theKeysCurrentIndex + 1) % theKeysLength;}//Check result for validity$("#resultDiv").hide("fast", function(){if(output == "DwsDagmwhziArpmogWaSmmckwhMoEsmgmxlivpDttfjbjdxqBwxbKbCwgwgUyam")$('#resultDiv').html("<p>Yeah, that's correct</p>");else$('#resultDiv').html("<p>No, that's not correct</p>");$("#resultDiv").show("slow");});//Output the output variable/*$("#resultDiv").hide("fast", function(){$('#resultDiv').html("Encrypted Output: " + output);$("#resultDiv").show("slow");});*/
});

Insecure Direct Object Reference Challenge Two

本题的请求参数中的userId通过MD5加密,分别为2,3,5,7,11。以此类推,下面一个数字是13(均为质数)。13加密后的值是:c51ce410c124a10e0db5e4b97fc2af39
工具网址:md5加密,sha1加密–md5在线解密

Cross Site Scripting Challenge Three

双写绕过(四层。。。)
答案:类似下面这种应该都可以(●ˇ∀ˇ●)

<INPUT TYPE="BUTTON" onmouonmonmouonmonmouseupouseupseupouseupseup="alert('XSS')"/>

Insecure Direct Object Reference Bank Challenge

实际做题的时候,因为不小心把用户1的钱汇到hahaha账户(一个不存在的账户)去了,所有1没钱给我的用户2汇了(ノへ ̄、)

SQL Injection Challenge Three

Mary Martin’ union select creditCardNumber from customers where customerName='Mary Martin

CSRF 2

本题做法和CSRF 1一样,URL换成下面这个就行了(注意本题是POST请求)(userID换成自己的)。

https://9.112.73.26/user/csrfchallengetwo/plusplus?userId=8d92219c1f08033fda0f42fe8d465a09a6d47481

CSRF 3

试了好几次都不好使,后来发现是题干给的参数名“csrftoken”,大小写拼写错了。。。正确的是:csrfToken
答案:用其他用户(用户A)发送POST请求,url为https://9.112.73.26/user/csrfchallengethree/plusplus,请求体为userid=8d92219c1f08033fda0f42fe8d465a09a6d47481&csrfToken=19422046358182368578328724819668437487。
注)此处的csrfToken值为用户A的tocken值

CSRF 4

用户A发送请求,url和请求体如下所示(都是题干给的原值),注意题干的参数名又给错了。。。

CSRF 5

总之,如下图所示,把csrfToken的值设为0就成功了。啥原理没有搞懂。

CSRF 6

没搞定,mark

CSRF 7

① 还是按照前面几个的套路,用户A发送一个POST请求如下(url,userId和csrfToken是题干给的):

返回了如下信息:

No CSRF Token Detected for this Challenge. You’re token is now 14416139482578450777120196210836391866

Increment Failed

② 直接把token给我们了,那就用它试一下:

成功了~

CSRF Challenge NEW

用其他用户发送请求,url和post请求主体如下图所示:

Session Management Challenge Four

Base64双重加密,admin的userId为0000000000000021(从当前用户0000000000000001推断而来,就一个个试)
工具地址:Base64加密、解密 - 站长工具

Cross Site Scripting Four

类似下面这种:

https://something" Onclick=alert(123)

SQL Injection 4

UserName: admin
Password: or username=“admin” –

解析:反斜杠\把单引号‘给转义了,相当于去掉了原有的单引号。
于是实际上执行的sql大致如下所示:

select * from tablename where username=**'admin password='** or
username="admin" -- ;

注)-- 后面一定要加空格
参考:Security Shepherd Challenges SQL Injection 4_我,我的博客-CSDN博客
NCTF sql injection 4_雨九九的小窝-CSDN博客

Insecure Cyrpto Challenge 3

加密后数据:IAAAAEkQBhEVBwpDHAFJGhYHSBYEGgocAw==
原数据:This crypto is not strong
不知道是什么加密算法,题目要求得出加密密钥。Mark

Poor Validation 2

随便试的:999999 999999 999999999 9999
返回信息:Your order comes to a total of $-2121842994
应该试溢出导致的
参考:关于int的范围以及溢出问题 - Leon_W - 博客园

Failure to Restrict URL Access Challenge 2

修改请求的URL和请全体如下图:

url和请全体是在页面源代码里找到的:(网上说是JS被加密了)

guestData|278fa30ee727b74b9a2522a5ca3bf993087de5a0ac72adff216002abf79146fa|leAdministratorFormOfAwesomeness|278fa30ee727b74b9a2522a5ca3bf993087de5a0ac72adff216002abf79146fahghghmin|adminData|youAreAnAdminOfAwesomenessWoopWoop

Cross Site Scripting Five

http://xss" "οnclick=alert(123)

SQL Injection Challenge 5

没做出来,mark

SQL Injection Stored Procedure Challenge

不太了解存储过程没做出来,可以参考下面的提示,mark

Insecure Crypto Storage Challenge 4

没做出来,mark

Cross Site Scripting Six

答案同Cross Site Scripting Five:https://xss" "οnclick=alert(123)

SQL Injection Challenge 6

本题可以参考源代码:(反斜杠和单引号被过滤了)
SecurityShepherd/SqlInjection6.java at dev · OWASP/SecurityShepherd · GitHub

PreparedStatement prepstmt = conn.prepareStatement("SELECT userName FROM users WHERE userPin = '" + userPin + "'");

没做出来,Mark

Broken Auth and Session Management Challenge Five

没做出来,mark

Failure to Restrict URL Access 3

① 点击button,cookie里面多了一个参数:currentPerson :“YUd1ZXN0”
② YUd1ZXN0通过base64解密为aGuest
③ 打开页面源代码,找到下图选中部分,作为之后请求的url

④ 利用sql注入,设置currentPerson的值为Im9yIjEiIT0iMA== ,它是"or"1"!="0通过base64加密后的数据。
⑤ 发送请求,响应体如下图所示:

⑥ 上图里面的username通过base64加密后,作为currentPerson参数值发送请求,挨个试一遍,发现MrJohnReillyTheSecond的用户是好使的,对应的值为:TXJKb2huUmVpbGx5VGhlU2Vjb25k

Session Management Challenge Six

这题看起来有点难度,鲜果,mark

Security Misconfiguration Cookie Flag Challenge

mark

Session Management Challenge 7

mark

SQL Injection Challenge 7

mark

Session Management Challenge 8

① 点击button,发现请求中多了一个参数:challengeRole:”LmH6nmbC” LmH6nmbC是经过加密的,加密方式是ATOM-128。工具网址:http://qbarbe.free.fr/crypto/eng_atom128c.php
② 然后就随便试一试admin,administrator啥的,正确答案是superuser,加密后是nmHqLjQknlHs
③ 修改challengeRole值为nmHqLjQknlHs,重新发送请求即可。

部分答案可以参考:
https://sythonic.github.io/2016/OWASP-Security-Shepherd/
https://woj.app/2354.html
https://susiecybersecurity.wordpress.com/category/09_owasp-security-shepherd/

Security Shepherd实战笔记(答案)相关推荐

  1. Spring实战笔记——(1)Spring之旅(上)

    Spring实战笔记--(1)Spring之旅 文章目录 Spring实战笔记--(1)Spring之旅 1.1简化Java开发 1.1.1 激发POJO的潜能 1.1.2依赖注入 依赖注入的实现 构 ...

  2. python爬虫从入门到实战笔记——第四章Scrapy框架

    推荐阅读: python爬虫从入门到实战笔记--第一章爬虫原理和数据爬取 python爬虫从入门到实战笔记--第二章非结构化数据和结构化数据的提取 python爬虫从入门到实战笔记--第三章动态HTM ...

  3. [转载]秀脱linux实战笔记linux-kernel-3.0.3实战篇

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 秀脱linux实战笔记linux-kernel-3.0.3实战片篇: QQ:     6 ...

  4. 机器学习实战笔记(Python实现)-04-Logistic回归

    转自:机器学习实战笔记(Python实现)-04-Logistic回归 转自:简单多元线性回归(梯度下降算法与矩阵法) 转自:人工神经网络(从原理到代码) Step 01 感知器 梯度下降

  5. Unity3D项目实战笔记(10):Unity3D编译IPA的PostEvents–节约时间利器

    最近,SDK支付等接入差不多了,就从Unity3D生成IPA (企业版License), 然,需要手动执行的PostEvents竟然多大10项+, 这些我默默的承受了1周时间,每次约浪费20分钟-额外 ...

  6. 云炬Qtpy5开发与实战笔记 2PyCharm添加QTDesinger扩展并创建第一个.ui文件

    1.配置使用QTDesigner扩展工具 在pycharm的项目配置中配置扩展工具,将QTDesigner加入其中: 2.在pycharm中打开QTDesigner 或者: 此时,我们就可以使用QTD ...

  7. 云炬Qtpy5开发与实战笔记 1开发第一个桌面应用Hello World

    云炬Qtpy5开发与实战笔记 0搭建开发环境(傻瓜式安装) 1.打开 Pycharm,选择 Create New Project,创建一个新项目 2.选择Pure Python表示创建一个纯Pytho ...

  8. mysql颠覆实战笔记(五)--商品系统设计(二):定时更新商品总点击量

    继续回到沈老师的MYSQL颠覆实战,首先回顾下上一节课的内容,请大家会看下上节课写的存储过程. 打开prod_clicklog表, 我们只要把日期(不含时分秒)的部分存在数据库中, 如果同一日期有相同 ...

  9. kaggle实战笔记_1.数据处理

    kaggle实战笔记_1.数据处理 数据处理的重要性比模型更重要 如果正负样本是1:100的话,直接拿去做建模,问题是非常大的,如果其评判标准为accuracy的话,如果把任何一个样本都判定为负样本的 ...

最新文章

  1. 开启注册丨EMNLP 2021论文预讲会,邀你一起共赏自然语言处理学术盛宴(日程全公开)...
  2. python 字符串去除中文
  3. 【转】根据起止日期+时间取数
  4. 自学Springboot(一)
  5. vue 2个方法先后执行_4个简单靠谱的所得税节税方法,老板看完都批示财务执行...
  6. ABAP SOAMANAGER暴露的函数function module,以web service方式执行的运行时细节
  7. 监控系统简介(二):使用 App Metrics 在 ASP.NET Web API 中记录指标
  8. 离散数学 习题篇 —— 关系的性质
  9. w10连接远程计算机控制,win10远程电脑怎么设置_win10通过远程桌面控制其他电脑的方法...
  10. 支付宝app登录授权的infoStr授权登录流程
  11. 如何批量删除PDF文件中的页面
  12. 无线接入控制服务器(ac),无线AP控制器是什么?无线AP与无线AC的区别
  13. [OpenCV实战]24 使用OpenCV进行曝光融合
  14. NB-IoT 模块连接移动ONENET平台
  15. 电子招标系统源码之了解电子招标投标全流程
  16. java piwik_Piwik学习 -- 插件开发
  17. MicroPython应用基础-准备MicroPython开发板
  18. 数九寒冬,中老年人要谨防腰椎“出轨
  19. 软件工程毕设选题推荐
  20. SMB小传 —— SMB网络文件系统协议介绍

热门文章

  1. CS224W图机器学习笔记5-消息传递与节点分类
  2. 机器视觉 零基础Python+OpenCV+MediaPipe手势识别教程(一)手势识别基础入门
  3. sql的sum函数(与group by,having子句混合使用)
  4. 火焰特性识别的Matlab实现方法
  5. html编辑器渗透,渗透测试之编辑器漏洞与旁注、跨目录、跨库、CDN绕过
  6. 三国演义中最具个性的名人名言
  7. 计算机主板 辐射,想当年单反镜头竟然还有核辐射?
  8. 个人空间岁末大回报活动12月26日获奖名单
  9. Android tips(十二)--Android开发中使用矢量图
  10. mysqlOracle导入导出txt格式的数据