WebGoat 靶场通关笔记 Challenges
Challenges类似 CTF 的无任何提示的题目,提交flag过关。
CTF需要发散性思维和想象力。
Admin lost password默认页面给出了用户名admin。但是不知道密码。
logo里面找密码,我是一点没脾气。
Without password以Larry身份登录。
SQL注入,竟然注入在密码字段。
Admin password reset重置admin的密码。
给自己的邮箱发邮件,点击重置链接显示不是admin用户。
在 http://www.webgoat.local:8080/WebGoat/challenge/7/.git 下了个git的压缩包。
解压,然后打开命令开,使用 git status来看一下仓库修改等状态。
使用 git restore PasswordResetLink.class恢复文件。
通过 jd-gui反编译 PasswordResetLink.class查看源代码。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454 ...
WebGoat 靶场通关笔记 Broken Access Control
Broken Access ControlHijack a session2“hijack_cookie”用于区分WebGoat的已验证用户和匿名用户。我们可以尝试通过猜解“hijack_cookie”值,找到已经验证的用户。
随便输入用户名和密码进行登录。查看请求数据,登录失败,但是发现返回了cookie。
将原先的请求增加这个返回的cookie,重新发送。发现失败了,这个cookie并不ok,不是已经认证的。
那就,尝试重复发几次原先的数据包,查看响应中的cookie规律。
从发送的10个请求的响应中提取的cookie如下:
123456789107433507759682194895-17025516648667433507759682194896-17025516648927433507759682194898-17025516649177433507759682194899-17025516649457433507759682194901-17025516649687433507759682194903-17025516649917433507759682194904 ...
WebGoat 靶场通关笔记 Vuln & Outdated Components
Vuln & Outdated ComponentsVulnerable Components5题目告诉我们有的组件可以被黑客简单的攻击,有的组件却不可以。
jquery-ui:1.10.4这个版本的组件有xxs漏洞,点击按钮,可以看到有弹框。
jquery-ui:1.12.0这个版本的组件没有这个漏洞,点击按钮不会出现弹框。
反正第一个按钮我点了没任何反应。
12此题目仅在 WebGoat 的 Docker 镜像中运行有效。
网上白嫖的一个 CVE-2013-7285 的 payload:
1234567891011<contact class='dynamic-proxy'> <interface>org.owasp.webgoat.lessons.vulnerablecomponents.Contact</interface> <handler class='java.beans.EventHandler'> <target class='java.lang. ...
WebGoat 靶场搭建
靶场部署官方代码仓库
Docker镜像部署启动docker容器:
1docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 webgoat/webgoat
访问 http://127.0.0.1:8080/WebGoat/ 和 http://127.0.0.1:9090/WebWolf/ 即可。
jar包一键运行需要本地安装Java,官方要求版本最好大于等于JDK 17,实际验证至少是JDK 11。
下载官方编译好的jar包,直接运行:
1java -jar webgoat-2023.5.jar
访问 http://127.0.0.1:8080/WebGoat/ 和 http://127.0.0.1:9090/WebWolf/ 即可。
源码部署(推荐,方便代码审计和调试)git克隆源码:
1git clone https://github.com/WebGoat/WebGoat.git
使用IDEA打开文件夹项目,会自动根据pom.xml文件下载所需的组件,可能需要较长的时间。
等待组件下载完成,找到 src/ma ...
安卓软件去除广告
安装安卓端工具【MT管理器】用来反编译修改安卓安装包源码
【Blocker】用来查看和屏蔽软件使用的广告服务(如果你有root权限的话,可以直接通过此软件屏蔽广告服务)
用【Blocker】查看使用的广告服务可以看到【**校园】使用了这些广告SDK服务:穿山甲、腾讯、快手、京东、百度
用【MT管理器】反编译安装包
记得【全选dex】!
修改源码,移除广告服务
穿山甲
根据包名路径,找到 com.bytedance.pangle.Zeus.hasinit 函数:
修改 const/4 v0, 0x0
腾讯:
根据包名路径,找到 com.qq.e.comm.managers.b.d 函数:
修改 const/4 v0, 0x0
根据包名路径,找到 com.qq.e.comm.adevent.ADEvent.getType 函数:
修改 const/16 v0, 0x65
快手:
根据包名路径,找到 com.kwad.sdk.core.network.BaseResultData.isresultok 函数:
修改 const/4 v1, 0x0
京东:
根据包名路径 ...
Python读写长路径文件错误的解决
原因常规DOS路径限制为MAX_PATH(260)个字符,包括字符串的终止字符NUL。 通过使用以 \\?\ 前缀开头的扩展长度路径,可以超过此限制。此路径必须是完全限定的Unicode字符串,并且只能使用反斜杠作为路径分隔符。 根据Microsoft的file system functionality comparison,最大扩展路径长度为32760个字符。单个文件或目录名最多可以包含255个字符(UDF文件系统为127个字符)。
示例代码1234567891011121314151617181920212223import osfrom PIL import Imageimport nrrd# ================== nrrd图片读取 ===========================files_root = r"C:\test\images"for root, dirs, files in os.walk(files_root, topdown=False): for name in files: if ".n ...
pip环境迁移
在线迁移
导出依赖文件requirements.txt
1pip freeze > requirements.txt
安装依赖文件requirements.txt
1pip install -r requirements.txt
离线迁移(相同平台)
下载依赖包
12345# 批量下载 pip download -r requirements.txt -d 保存包的目录 # 单个包下载 pip download 包名 -d 保存包的目录
压缩保存包的目录:
1zip 文件名.zip 保存包的目录/*
上传安装依赖包
将包上传到离线服务器,解压:
1unzip 文件名.zip -d 解压到的目录/
离线安装:
12345# 批量安装 pip install -r requirements.txt --no-index --find-links=file://依赖包目录的绝对路径 # 单个包安装 pip install 包名 --no-index --find-links=file://依赖包目录的绝对路径
p注意:依赖包目录是指包含所有包的那个目录, ...
Docker教程
安装
windows
去Docker官网下载Windows版本的安装程序安装,安装完可能会报WSL的错误,安装微软的WSL的内核更新包后重启Docker即可。
下载安装WSL内核更新包
Linux
使用自动安装脚本安装docker-ce
1curl -fsSL https://test.docker.com -o test-docker.sh && chmod +x test-docker.sh && ./test-docker.sh
Mac
去Docker官网下载Mac版本的安装程序安装即可。
换源(非必须)受制于国内网络环境,默认的镜像源可能比较慢,推荐使用国内的镜像源。
推荐国内可用镜像源:
12345678# 中科大源https://docker.mirrors.ustc.edu.cn/# 腾讯源https://mirror.ccs.tencentyun.com# daocloudhttp://f1361db2.m.daocloud.io
Windows下配置:
在设置面板中添加镜像源配置,重启Docker。
Linux下配置: ...