Test

He11o, th1s 1s a test! #include <stdio.h> int main() { pritnf("Hello World!"); } 文章许可:本文采用CC BY-NC-SA 4.0许可协议,转载请注明出处。

Created: 2021-05-28 · Updated: 2021-05-28 · 0opsdc

网站镜像克隆

使用wget克隆网站 使用方法 我们可以使用man wget命令查看帮助文档。 操作命令及参数解释如下: wget -m -p -E -k -K -np -v https://www.baidu.com/ # 参数解释 -m : 镜像,选择该选项适用于Web站点 -p : 页面获取的先决条件,该选项确保包含了请求的图片和css脚本文件被下载(可以更好复制html5站点) -E : 适用于拓展,可以在本地另存一个html文件 -k : 转换链接,确保文件本转换,适用于本地浏览 -K : 转换备份文件,将以orig为后缀作为原始文件 -np : 不要到上一层子目录中 -v : 显示过程,不显示过程为-nv 克隆结果 # 克隆后在当前目录下会出现一个与网站同名的子目录,树形结构如下 www.baidu.com ├── index.html ├── index.html.orig └── robots.txt 0 directories, 3 files 使用HTTrack克隆网站 使用方法 httrack # 进入软件后需要输入项目名 baidu # 克隆后的存放地址 /home/oopsdc/Desktop # 要克隆的网站地址 www.baidu.com # 有6个选项,此处我们选2,具有向导递归层级的镜像网站 2 # 接下来的部分全选默认选项 默认回车 克隆结果 baidu ├── backblue....

Created: 2021-04-20 · Updated: 2021-04-20 · 0opsdc

Docker

Docker概述 镜像(image): 一个只读模板。一个镜像可以用来创建多个Docker容器,好似Java中的类和对象,镜像是类,容器是对象。 容器(container): Docker利用容器独立运行一个或一组应用,容器是用镜像创建的运行实例。 容器可以被启动、开始、停止、删除。 每个容器都是相互个隔离的。 也可以把容器看做一个简易版Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)及运行在其中的应用程序。 容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器最上面一层可读可写。 仓库(repository): 仓库是集中存放镜像文件的场所。 仓库和仓库注册服务器(registry)是有区别的,后者往往存在多个仓库,每个仓库又存在多个镜像,每个镜像有不同的标签。 仓库分为公开仓库和私有仓库两种形式。 最大的公开仓库是Docker Hub,国内最大的为阿里云、网易云等。 Docker安装 环境:CentOS 7 1.官方文档 2.yum安装gcc相关环境: yum -y install gcc yum -y install gcc-c++ 3.卸载旧版本: yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine 4.安装依赖包: yum install -y yum-utils 5.设置镜像仓库: # 错误 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo ## 报错 [Errno 14] curl#35 - TCP connection reset by peer [Errno 12] curl#35 - Timeout # 推荐国内镜像 yum-config-manager --add-repo http://mirrors....

Created: 2021-04-13 · Updated: 2021-04-13 · 0opsdc

Golang

runoob教程:Go 语言教程 | 菜鸟教程 (runoob.com) 环境搭建 安装包官方下载地址:Downloads - The Go Programming Language (golang.org) 国内能打开的地址:Downloads - The Go Programming Language (google.cn) Windows安装go 安装包下载 这里我选择下载msi文件的go1.16.2.windows-amd64.zip压缩包,然后放在环境目录D:\Env\go1.16.2\bin下解压。 环境配置 将go目录下的/bin路径添加到Path环境变量中,点击新建。 D:\Env\go1.16.2\bin 检测安装 打开cmd输入go。 hello-world 在工作目录创建hello.go文件。 package main import "fmt" func main() { fmt.Println("Hello, World!") } 使用go run命令运行: go run hello.go go build生成二进制文件运行: > go build .\hello.go > ls Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2021/3/15 10:50 2094592 hello.exe -a---- 2021/3/15 10:47 79 hello....

Created: 2021-04-13 · Updated: 2021-04-13 · 0opsdc

GTK+

GTK+简介 GTK+(Gnome Toolkit+)最初是为GIMP(GNU Image Manipulation Program)写的,在开发早期GIMP版本时,Peter Mattis 和 Spencer Kimball创建了GTK(GIMP Toolkit)作为Motif收费工具包的替代。当GTK获得了面向对象特性和可扩展性后,才变为了GTK+。 GTK+特点 稳定、跨平台、多语言绑定、接口丰富、与时俱进、算法丰富、移动嵌入式应用广泛. 学习手册 GTK+2手册:GTK+ 2 Reference Manual - GNOME Developer Center GTK+3手册:GTK+ 3 Reference Manual - GNOME Developer Center 中文手册:介绍 - 《GTK+3 参考手册》 - 书栈网 · BookStack GTK程序简介 使用gcc编译时加上pkg-config --cflags --libs gtk+-2.0,或者直接使用makefile编译 例: gcc demo.c -o demo `pkg-config --cflags --libs gtk+-2.0` 自动获得预处理参数,如宏定义、头文件位置 自动获得链接参数,如库、依赖库位置、文件名及其它参数 GTK程序基本框架 #include <gtk/gtk.h> int main(int argc, char *argv[]) { gtk_init(&argc, &argv); // 初始化 // 代码区 gtk_main(); // 主事件循环 return 0; } 分析:...

Created: 2021-03-27 · Updated: 2021-03-27 · 0opsdc

博客搭建

博客搭建 hugo Hugo官方网站:https://gohugo.io 本文以PaperMod主题为例,官方文档:Installation · adityatelange/hugo-PaperMod Wiki (github.com) 需求准备 Hugo:Releases · gohugoio/hugo (github.com) 安装步骤 1.解压压缩包 2.配置环境变量 D:\Env\hugo_0.83.1 3.初始化博客 官方文档推荐我们使用易读性更高的yml格式初始化博客。 hugo new site <name of site> -f yml 4.指定主题 在config.yml文件中设置主题。 theme: PaperMod 5.本地启动 先在本地看看网站跑起来的效果 hugo server 6.创建GitHub仓库 具体操作详见之后的hexo主题教学。 7.修改baseUrl 将config.yml文件中的baseUrl修改为刚刚创建的仓库。 baseURL: "https://<username>.github.io/" 8.生成public文件夹 public中包含所有静态页面的内容,我们需要生成这个文件夹并上传到远程仓库中,完成博客部署。 hugo 9.push到远程仓库 # 配置代理 git config --global http.proxy socks5://127.0.0.1:<port> git config --global https.proxy socks5://127.0.0.1:<port> # 更改默认分支 git push -u origin main # push文件 cd public git init git add ....

Created: 2021-03-12 · Updated: 2022-05-20 · 0opsdc

My 1st post

文章许可:本文采用CC BY-NC-SA 4.0许可协议,转载请注明出处。

Created: 2020-09-15 · Updated: 2020-09-15 · 1 min · Me

Bugku

Bugku Web Web1 Des:flag{}。 查看源码即可。 Web2 Des:输入验证码即可得到flag。 输入框有输入长度限制,在控制台修改长度即可。 Web3 Des:flag{}。 通过get传参,按照题目要求直接传入 ?what=flag Web4 Des:post。 方法1 利用hackbar直接post传参。 方法2 利用burp抓包传值。 方法3 编写python脚本。 import requests s = requests.Session() r = s.get("<url>") value = {'what':'flag'} r = s.post("<url>", value) print(r.text) 题目更新 Des:看看源代码吧。 查看源代码,发现有两串编码字符串,分别对两个字符串进行URL解码,按照代码含义将其组合起来,放到控制台Console里排版。 将if判断里与a.value判等的值输入提交框,提交。 获得flag。 Web5 Des:矛盾。 $num = $_GET['num']; if (!isnumeric($num)) { echo $num; if ($num == 1) echo 'flag{********}'; } 利用1a绕过,例: ?num=1a01 Web6 Des:flag{}。 查看源码。 Unicode编码,解码即可。 Web7 Des:你必须让它停下。 burp抓包,使用重放(Repeater)模块不断点击go发送页面,注意查看response。 Web8 Des:文件包含。 打开题目获得代码:...

Created: 2020-04-13 · Updated: 2020-04-13 · 0opsdc

攻防世界

攻防世界 Web view source Des:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。 查看页面源码。 获得flag。 robots Des:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。 在URL后加上robots.txt,得到一个php页面提示,访问对应php文件。 获得flag。 backup Des:X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧! 尝试backup.php,无效。 使用御剑扫描后台,得到index.php.bak,输入后下载备份文件,cat查看。 获得flag。 cookie Des:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’ 使用burp抓包,得到cookie.php。 继续使用burp抓包,查看Response。 获得flag。 disable_button Des:N/A。 页面的flag按钮无响应,猜测被禁用,查看控制台元素。 <input class="btn btn-default" disabled> 将此处的disabled前三字符删除,改为abled,按下按钮。 获得flag。 weak_auth Des:小宁写了一个登陆验证页面,随手就设了一个密码。 查看源码。 <from class="form-inline" method="post" action="./check.php"> 有一个验证页面,访问它。 页面空白,查看源码,提示。 <!--maybe you need a dictionary--> 这道题或许不需要字典? 尝试御剑扫描,无果。 好的我错了,随机输入用户名和密码,使用burp抓包,response显示用户名必须为admin,初次爆破无果,手动尝试123456,正确….如果尝试继续用字典的话还是可以爆出来,只是比较费时间。 获得flag。 simple_php Des:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。 <?php show_source(__FILE__); include("config.php"); $a = @$_GET['a']; $b = @$_GET['b']; if ($a == 0 and $a) { echo $flag1; } if (is_numeric($b)) { exit(); } if ($b > 1234) { echo $flag2; } ?...

Created: 2020-01-03 · Updated: 2020-01-03 · 0opsdc

Apache漏洞复现

Airflow 存储型XSS 漏洞描述 Apache Airflow 1.10.2及之前版本的airflow webserver服务存在XSS漏洞,原因在于`WEB应用未对客户端数据进行正确验证,导致攻击者可利用该漏洞执行客户端代码。 影响版本 Apache Airflow 1.10.3以下版本。 漏洞复现 访问/admin/dagrun/(默认不需要密码)。 创建一个项目,输入ID后点击保存,返回列表,点击running字样,发现能够输入HTML代码,例: <script>_a="https://www.baidu.com"</script> <script>document.location=_a</script> 能直接造成存储型XSS。 ActiveMQ 反序列化漏洞 CVE-2015-5254 漏洞描述 Apache ActiveMQ是Apache软件经济会研发的一套开源消息中间件,支持Java消息服务、集群、Spring Framework等。Apache ActiveMQ 5.13.0之前版本,即5.x版本中存在反序列化漏洞,漏洞源于程序没有限制可在代理中序列化的类,攻击者通过借助特制序列化Java消息服务(JMS) ObjectMessage对象实现任意代码执行。 影响版本 Apache ActiveMQ 5.13.0之前的5.x版本。 复现思路 1.构造(可使用ysoserial)可执行命令的序列化对象。 2.作为一个消息,发送给目标对应端口。 3.访问Web管理页面,读取消息,触发漏洞。 漏洞复现 使用jmet进行漏洞利用:ianxtianxt/jmet: Java Message Exploitation Tool (github.com) 下载好之后在jmet-0.1.0-all.jar同级目录下创建external文件夹,避免出现文件夹不存在的报错。 jmet的原理是使用jar包内置ysoserial生成Payload并发送,我们需要在ysoserial的gadget选择一个可使用的,如ROME。 给目标ActiveMQ添加一个名为event的队列,点击事件为生成/tmp/vuln文件: java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/vuln" -Yp ROME <ip> <port> # 命令执行成功后回显如下 INFO d.c.j.t.JMSTarget [main] Connected with ID: ID:<server-id> INFO d....

Updated: 0001-01-01 · 0opsdc