冲冲冲

HXBer 发布的文章

本文参考静静姐姐的文章,写在这用以方便更新博客证书。


下载 certbot

git clone https://github.com/certbot/certbot.git

执行证书申请

cd certbot
./letsencrypt-auto certonly --webroot --webroot-path [Nginx网站的根目录] -d [你要申请证书的域名] -m [你的邮箱]

以我为例:

./letsencrypt-auto certonly --webroot --webroot-path /usr/share/nginx/typecho/build -d white.xmutsec.com -m test@gmail.com

申请成功则会出现

   IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/white.xmutsec.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/white.xmutsec.com/privkey.pem
   Your cert will expire on 2019-05-24. To obtain a new or tweaked
   version of this certificate in the future, simply run
   letsencrypt-auto again. To non-interactively renew *all* of your
   certificates, run "letsencrypt-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

接着重载nginx

service nginx reload

扫描二维码,在手机上阅读!

1.unicode
关键字——&#;
选择unicode转ASCII
eg:

Q:ctf{flag}
A:ctf{flag}

2.ROT13加密(凯撒密码变种)
特点:已经带有{}
eg:

Q:zbpgs{Ebg_rapbQr}
A:moctf{Rot_encoDe}

3.当铺密码
关键字——口由中人工大王夫井 分别表示0-8
eg:

Q:由口中 由由夫 由由口 由由口 由中由
A:102 117 110 110 121

4.用字符串密钥解密(文件)
特点:拥有一个密钥key
eg:

Q:Snake http://www.shiyanbar.com/ctf/1851
A: 转换格式为zip后解压出两个分别名为key和cipher的文件。将藏着的base64解码后跟着提示得到了key为“anaconda”。用http://serpent.online-domain-tools.com/ 网站下的在线工具进行解密得到flag。

5.AES加密
特点:@@@/@@@/@@@==
eg:

Q:MOCTF新春欢乐赛MISC-李华的疑惑 U2FsdGVkX18R9EylBVacP/j0XpCISh9nZth6TFwoh5GUv0edeVp3ZV9gXVqd/rlH66OIZgSHn2Mock4hcdqFEg==
A:moctf{D0_You_1ik3_tO_pAinH_wi4h_pi8e1}

6.base64/32/16加密

Q:MZWGCZ33MM4GENJVHBRDSNJUGAYTSOBVGZTDAYRQGIZTINLEMMZTSNJVHBRX2===
A:Base32 flag{c8b558b954019856f0b02345dc39558c}

7.颜表情加密
特点:全是颜表情

6.Ook!密码
特点:都是由Ook组成
eg:

Q:http://ctf.bugku.com/challenges#ok
A:flag{ok-ctf-1234-admin}

8.Brainfuck
特点:由"+","-","[","]","<",">"构成
eg:

Q: http://ctf.bugku.com/challenges#%E8%BF%99%E4%B8%8D%E6%98%AF%E6%91%A9%E6%96%AF%E5%AF%86%E7%A0%81
A: flag{ok-c2tf-3389-admin}


扫描二维码,在手机上阅读!

2017年暑假,我就已经开始在了解厦门理工信息安全协会。和群里面和学长们谈笑风生真是有趣。

2017年九月,我正式的加入了厦门理工信息安全协会,从此人生多了分不同。

2017年10月18日,第一次信息安全协会见面会,见到了会长Sheldon。
请输入图片描述

2017年12月29日,我加入了厦门理工信息安全协会的CodeMonster战队

2018年4月28日,我第一次代表学校和战队成员一起来到了杭州,站在了线下比赛的场地上,我第一次获得比赛奖项——个人第十四名(优秀奖)。

比赛场地的战队宣传

“西湖论剑”杯签到处

2018年5月28日,360的小姐姐来我们学校做宣讲会,还进行了闭门会,让我们对安全企业有所了解。
360校园宣讲会

2018年6月8日,我又一次和大家来到了苏州参加全国信息安全大赛。这是我获得过的最好成绩,团队全国三等奖。
全国信息安全大赛(华东南赛区)

2018年6月28日,豆浆油条生日,协会聚餐,卢本伟直播日余老师。

卢本伟直播日余老师

2018年7月8日,我和卢本伟参加了社团换届就职演讲,从Sheldon那里接手了这个社团。

社团换届就职演讲

未完待续。。。


扫描二维码,在手机上阅读!

测试环境
UpLoad-labs
安装
在github上下载
https://github.com/c0ny1/upload-labs
将其解压在phpstudy的WWW目录下,并创建一个upload文件夹(否则会一直报错)
1.png

然后这里的shell的内容大都是<?php phpinfo() ?>
因为如果我们能够执行这句话的话说明我们可以执行其他的php木马,而且phpinfo()函数返回PHP的所有信息,包括了PHP的编译选项及扩充配置、PHP版本、服务器信息及环境变量、PHP环境变量、操作系统版本信息、路径及环境变量配置、HTTP标头等信息。

做题

Pass-01

这题在js代码中有文件类型过滤。
我们上传一个shell.jpg,用bp抓包修改这个文件的后缀名为.php即可。

上传shell成功后我们直接访问upload目录下的shell,测试成功。


Pass-02

查看源码会发现判断文件语句:
if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif'))
这里只校验Content-Type

方法一:

上传shell.php,抓包,会发现Content-Type为application/octet-stream(未知文件类型的二进制流)将其就改为imge/jpg,上传成功。

方法二:

上传shell.jpg,抓包,修改后缀名为shell.php,上传成功。

Pass-03

这道题采用了黑名单过滤,但是只过滤的部分后缀名,上传php3或者phtml即可。

Pass-04

这题依旧是黑名单过滤,但是与上一题不同的是它几乎过滤完了。但是依旧有漏网之鱼.htaccess
我们可以先上传一个.htaccess
SetHandler application/x-httpd-php

这样所有文件都会解析为php
接着再上传图片

Pass-05

依旧是黑名单,这题加上了.htaccess的过滤。但是大小写没有过滤。修改后缀为phP即可上传成功。

Pass-06

这题还是黑名单,但是没有对后缀名进行去空处理,可在后缀名中加空绕过过即可上传成功。

Pass-07

还是黑名单,对比前面会发现没有对后缀名进行去”.”处理,利用windows特性,会自动去掉后缀名中最后的”.”,可在后缀名中加”.”进行绕过即可上传成功。

Pass-08

还是黑名单,但是没有对后缀名进行去”::$DATA”处理,利用windows特性,可在后缀名中加” ::$DATA”绕过即可上传成功。

Pass-09

这题算是七八题的综合题,也是利用Windows的特性,会自动去除末尾的点和空格。
当我们抓包修改末尾有一个点时,会被识别删除。
当我们抓包修改末尾有一个空格时,会被识别删除。测试环境


扫描二维码,在手机上阅读!

0x00

本人是厦门理工CodeMonster战队的选手White,因为队内缺少pwn手,使得我们在比赛中pwn部分得分一直没有起色,故我决定学习pwn来提升自己与战队。因为在网上没有找到多少系统性的pwn入门,故这篇即是我从零开始的pwn入门记录,也可以供大家参考。本人PWN也是从零入门,当中也许会有错误,还望各位师傅指点。


0x01

http://pwnable.kr/play.php 题目:fd
这是我入门做的第一道题目。让我们来看看这道题。

1.png

既然是从零开始 就要有从零开始的样子

题目中给了一句提示、教程地址、以及一个地址。

ssh fd@pwnable.kr -p2222 (pw:guest)

这是要让我们要用ssh连上如上地址的2222端口,密码为guest。

我个人是用虚拟机上的kali连接

2.png

(PS:输入密码的时候是不会有回显的)

成功连上该服务器,会显示pwnable.kr的图案

我们输入ls (linux下的查看当前位置所有文件的指令,详情参照另一篇文章)来看该目录有何东西

3.png

可以看到有三个文件 一个是fd.c编译后的可执行文件、一个fd的C语言源码,一个是flag

看到flag可能眼睛都亮起来了,然而我们要打开flag会提示"flag" [Permission Denied](权限不足)

所以我们要思考如何获得flag

打开fd.c

vi fd.c

4.png

分析代码

int fd = atoi( argv[1] ) - 0x1234;

fd的值指的是第一个输入的字符串参数转换成整型减去0x1234(16进制)
其中atoi()函数是将字符串转换成整型的函数。

strcmp
C/C++函数,比较两个字符串
设这两个字符串为str1,str2,
若str1==str2,则返回零;
若str1<str2,则返回负数;
若str1>str2,则返回正数。

所以在此就是需要构造buf="LETMEWIN"

继续往下看fd的值在read中被调用

查阅read()的相关资料

From Wikipedia

The read system call interface is standardized by the POSIX specification.
Data from a file is read bycalling the read function:

ssize_t read(int fd, void *buf, size_t count);

即读取的系统调用接口由POSIX规范标准化。通过调用read函数来读取文件中的数据

然后我们想到题目给的提示——“Mommy! what is a file descriptor in Linux?”

查阅Linux file descriptor
//From Wikipedia
5.png

所以就要使用read()进行输入流——即要使fd=0

所以要使fd = atoi( argv[1] ) - 0x1234=0;

故输入的参数要等与0x1234 即十进制的4660

我们带参数运行fd(如图)在输入LETMEWIN即可获得flag
6.png


扫描二维码,在手机上阅读!

0x00

本人是厦门理工CodeMonster战队的选手White,因为队内缺少pwn手,使得我们在比赛中pwn部分得分一直没有起色,故我决定学习pwn来提升自己与战队。因为在网上没有找到多少系统性的pwn入门,故这篇即是我从零开始的pwn入门记录,也可以供大家参考。本人PWN也是从零入门,当中也许会有错误,还望各位师傅指点。


0x01 什么是PWN?

Wikipedia:

在骇客行话里,尤其在另外一种电脑技术方面,包括电脑(服务器或个人电脑)、网站、闸道装置、或是应用程序,"pwn"在这一方面的意思是攻破("to compromise",危及、损害)或是控制("to control")。在这一方面的意义上,它与骇客入侵与破解是相同意思的。例如某一个外部团体已经取得未经公家许可的系统管理员控制权限,并利用这个权限骇入并入侵("owned" 或是"pwned")这个系统。

Pwn 题目主要考察二进制漏洞的发掘和利用,需要对计算机操作系统底层有一定的了解。在CTF比赛中,PWN题目主要出现在 Linux 平台上。题目一般会提供一个地址,这个地址的端口上挂着你需要解决的题目。有时候出题者会提供题目源码,有时不会提供。需要解题者想办法通过逻辑或者漏洞来解决问题。

0x02环境和工具的准备

# Linux系统

# python环境 https://www.python.org/downloads/

# netcat安装 https://eternallybored.org/misc/netcat

# 将netcat的路径添加到系统变量中让我们可以使用cmd来打开nc

系统设置-环境变量-系统变量(path)-新建-选择netcat的路径

# pwntools安装 https://docs.pwntools.com/en/stable/install.html

pip install pwntools

安装好后测试一下是否成功

form pwn import  *

# IDA Pro(F5大法好)

未完待续。。。


扫描二维码,在手机上阅读!

MISC:PICTURE
解题思路:附件下载下来为一张png图片。一顿操作之后用binwalk跑了一下发现藏有数据
QQ截图20180429174442.png
binwalk -e 分离出来是两个文件。打开其中一个可以看到一串经过base64加密过后的字符
串。用base64脚本跑出来的文件经WinHex打开后可以发现存在ZIP关键字——PK。搜索504B0506找到文件尾,将其分离提取出来,并将头部的4B和50的位置对调得到一个带密码且非伪加密的ZIP文件。
3.png
继续观察解码出来的内容,我们不难观察到里面的几个关键信息:

python2.7
File" " line 1

。该特征体现这是一个python程序的报错内容。但是并不完整。而这里面已经有password的提示。搜索完整的报错内容应该为:ZeroDivisionError: integer division or modulo by zero。尝试密码成功,得到一个文件。
5.png
最后Uudecode后即可获得flag

MISC:寻找入侵者
题目描述:“黑客使用无线钓鱼攻击一个SSID为“CyberPeace”的热点,但是我们的蜜罐系统捕获了他的数据包,并且已经得知他的握手包密码就是他的网卡地址。可是根据我们最新获得的情况,他又发送重连请求的Malformat Frame试图崩溃我们的无线路由器。 请从attack包中找到密码,并解开他的数据包,找到那条畸形数据。”

解题思路:从题目描述中能得知,握手包的密码即为黑客网卡地址,同时这还是该Wi-Fi的密码。所以我们先在攻击包中用Wireshark将所有的设备的MAC地址提取出来,然后用aircrack-ng对握手包来进行字典爆破。
1.png
先用aircrack-ng分析握手包得到握手包的各种数据。
接着用字典爆破爆破可以得到结果——黑客网卡MAC: 88:25:93:c1:c8:eb
7.png
通过MAC地址确定攻击机为Tp-LinkT_c1:c8:eb
接着使用刚刚爆破出来的密码用airdecap-ng来读握手包得到一个新的cap文件
QQ截图20180429192315.png
Wireshark打开分析HTTP流,最后一行有一个key.rar吸引了我。
10.png
查看详细有一个链接,下载key.rar打开后依旧是一个pcap回到题目,黑客为了使路由器崩溃而发了畸形数据,所以可以分析得出,该数据包依旧由原网卡发出,且改畸形数据包按照时间顺序排列应该在较为后方的位置。
wlan.sa == 88:25:93:c1:c8:eb 过滤Tp-LinkT_c1:c8:eb
11.png
可以看到除了最后一条以外,上面的数据包都是Malformed Packet。然而点开都没有什么异常字符串。后点开最后一个数据包发现了一条字符串即为flag
12.png


扫描二维码,在手机上阅读!

//部分内容转自https://www.cnblogs.com/pcat/p/5256288.html

因为做CTF时要用到binwalk时每每还得打开虚拟机,于是便想看看是否有Windows环境下的binwalk。搜索后看到一篇相关博客。但可能因为我的知识面不够,没能很好的理解原文作者的完整意思,便自己摸索。写此篇博客给大家参考。

首先现在github上下载binwalk项目https://github.com/ReFirmLabs/binwalk
接着下载后打开cmd,cd进入所下载的文件解压后的路径。输入python setup.py install接着就会开始安装。
然后我们进入py环境测试一下binwalk是否有被安装完成。
输入
>>> import binwalk

如果没有报错即安装成功。
这时已经安装好了,但是我们想要更好的使用binwalk。我们可以将其加入系统变量让其可以在cmd中调用。

以下是转载自pcat的代码和方法:
原文链接:https://www.cnblogs.com/pcat/p/5256288.html

方法一:
创建一个文件夹,在文件夹里新建一个名为binwalk.bat文件。(代码如下)

@echo off
echo * suggest: you'd better to input the parameters enclosed in double quotes.
echo * made by pcat
python "%~dp0\p_binwalk.py" %1 %2 %3 %4 %5 %6 %7 %8 %9

在文件夹里再新建一个p_binwalk.py文件。(代码如下)

# -*- coding:utf-8 -*-
# author: pcat
# http://pcat.cnblogs.com

import sys
import binwalk

if __name__ == "__main__":
    lst=sys.argv
    if len(lst)<2:
        print("No files.")
        exit()
    try:
        if lst[1][0]=='-':
            binwalk.scan(*lst[2:],signature=lst[1])
        elif lst[1][0]!='-':
            binwalk.scan(*lst[1:],signature=True)
    except:
        pass

打开系统设置-环境变量-系统变量的-path-新建,指定刚刚创建的文件夹的路径即可。(该文件夹和变量存在的情况下即可在cmd内使用binwalk)

方法二:
打开系统设置-环境变量-系统变量-新建-变量名为PYTHON_HOME的系统变量。变量值为你python的安装地址,默认为C:\Python27
接着新建一个binwalk.bat 文件。(代码如下)

:: author: pcat@chamd5.org
:: http://pcat.cnblogs.com
@echo off
echo * suggest: you'd better to input the parameters enclosed in double quotes.
echo * made by pcat
echo * ***********************************************************************
if defined python_home (
    python "%python_home%\Scripts\binwalk" %1 %2 %3 %4 %5 %6 %7 %8 %9
)else (
    echo "you need to set PYTHON_HOME"
)

打开系统设置-环境变量-系统变量的-path-新建,指定该文件夹即可。(该文件夹和变量存在的情况下即可在cmd内使用binwalk)


扫描二维码,在手机上阅读!