PHP preg_系列漏洞小结
最近看 P 神以前写的文章,其中在 3 个参数的回调函数中提到了 preg_replace /e 命令执行,对这块不是很熟悉的我特此写这篇文章总结学习一下。
preg_matchint preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
preg_match 函数用于执行一个正则表达式匹配
参数
说明
$pattern
要搜索的模式,字符串形式。
$subject
要搜索检测的目标字符串
$matches
如果提供了参数matches,它将被填充为搜索结果 $matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。
$flags
可设置标记值,详细用法参考 PHP手册:preg_match
$offset
可选参数 offset 用于指定从目标字符串的某个未知开始搜索(单位是字节)。
preg_replac ...
PHP webshell 免杀姿势总结
PHP 有很多经典的免杀姿势可以总结学习,不知道以前国光我在干啥,这个实际上早就该掌握的知识了,果然是“逆水行舟,不进则退”啊 。
环境准备
防护软件
官网
版本日期
网站安全狗
网站安全狗
2020-04-02 Apache Apache版 V4.0.28330
D盾
D盾_防火墙
2019-10-31 V2.1.5.4
安全狗安装比较坑,国光使用 PHPStudty 2018 版本安装的时候,默认是检测不到 服务名的,然后提示:服务名不允许为空
所以安装前得首先安装一下 Apache 服务,首先停止 PHPStudy 的 Apache 和 MySQL 服务,然后以管理员身份运行 CMD ,接着到 Apache 的 bin 目录下执行如下命令:
httpd.exe -k install -n Apache
# 安装成功的输出信息
C:\phpStudy\PHPTutorial\Apache\bin>httpd.exe -k install -n Apache
Installing the 'Apache' service
The 'Apache' servic ...
Python 实现 T00ls 自动签到脚本(邮件+钉钉通知)
T00ls 每日签到是可以获取 TuBi 的,由于常常忘记签到,导致损失了很多 TuBi 。于是在 T00ls 论坛搜索了一下,发现有不少大佬都写了自己的签到脚本,签到功能实现、定时任务执行以及签到提醒的方式多种多样,好羡慕啊。所以这里国光也尝试借鉴前辈们的脚本,尝试整合一个自己的自动签到脚本,因为国光有自己的服务器,所以打算使用 Linux 下的 crontab 来定时执行任务,提醒的话使用钉钉和邮件提醒基本上可以满足我的使用需求了,话不多说,下面开始脚本的编写吧。
基础签到写代码功能得慢慢添加上去,首先得实现一个最基础的登录并签到功能,后续再添加邮件以及钉钉提醒等功能。
因为脚本功能比较简单,就直接将对应的功能封装成函数了。对应的函数都按照正规开发那样给了详细的注释和说明,话不多说直接看下面的代码吧:
import json
import requests
username = '国光' # 帐号
password = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' # 密码MD5 32位(小写)
question_num = 5 # 安全提问 参考下 ...
国光的 macOS 软件清单列表
昨天凌晨苹果 WWDC 发布会上展示了macOS 的下一代版本 macOS 11.0 Big Sur,国光我手贱升级了,变化真的巨大,状态栏、通知栏还有其他 UI 元素都大改动了,图标也全都圆角矩形了,而且更加拟物很像 macOS 10.10 之前的风格,虽然这些变动都很有新鲜感,但是国光我安装的很多软件都翻车无法使用, PD 虚拟机也挂了、brew 也无法安装软件了…..没错国光我抹掉磁盘重新安装回 macOS 10.15.5 Catalina了,每次系统安装完都需要安装一大堆软件,所以这篇文章就这样诞生了。
前言国光是一名信息安全从业者,偶尔写写代码和剪辑,所以下面的软件清单也都是按照我的职业特性来列举的。另外还有有一些敏感的破解版资源,国光我单独放在了这个页面了:macOS精品软件
所有软件均来源于互联网分享,本页主要是为大家带来更好的下载体验,大家低调使用。
00xED
官网地址:0xED
0xED 是基于 Cocoa 框架的本机 OS X 十六进制编辑器,速度快,内存占用小,免费支持简体中文。
010 Editor
相关链接:MAC精品软件
专业的十六进制编 ...
《黑客命令行攻防实战详解》书籍学习记录
2016 年左右的时候读过这本书,当时太浮躁了没有读完。最近在学习内网安全,CMD 命令属于基本功了,所以就打算重新来阅读这本书,尝试读完并做一份摘要笔记。
书籍简介
作者: 至诚文化出版社: 中国铁道出版年: 2011-9页数: 309定价: 45.00元ISBN: 9787113130497
第 1 章 黑客!黑客!感觉有点水,这一章直接略过,可能当初没有入门的时候看这个会比较激动,物是人非事事休,欲语泪先流。
第 2 章 系统管理命令2.1 命令行基础认识 Windows 的命令行Linux 基本上都是使用 shell 进行系统交互的,因为 Windows 的图形化界面比较强大,导致很多人就不怎么重视 CMD 命令行操作,实际上命令行操作的效率是很高的,在实战中黑客接触最多的还是命令行、
从 Windows Vista SP1 开始,Windows 开始内置更强大的 Windows Powershell 本书第 6 章也会去详细介绍。
DOSkey 常用快捷键:
Delete: 删除广告后的字符
Home\End: 移动光标到命令行的开头和结尾
Insert: 在插入和改写 ...
Web for Pentester 靶场学习记录
Web for Pentester 也是一个经典的靶场,也叫做 PentesterLab ,最近一直带着笔记本在外面,也没法研究内网安全的知识了,就刷刷靶场来充实一下自己吧,宁静致远。
配置部署官方地址:PentesterLab: Learn Web App Pentesting!
靶场是封装在一个 Debian 系统里面的,官方提供的是虚拟机的 ISO 文件 172MB 大小左右,安装很简单,直接虚拟机挂载启动就可以了。因为系统是最小化安装,没有安装桌面环境,虚拟机下无法安装 vmtools 之类的工具,实际体验并不怎么样,为了方便查看网站源码信息,我们得简单配置一下:
# 查看 IP 地址
$ ip a
# 查看 SSH 服务是否运行
$ /etc/init.d/ssh status
sshd is running.
# 设置 root 密码
$ sudo passwd
发现 SSH 服务是安装配置好的了的,而且正在运行,这个时候我们设置一下 root 密码 就可以通过 SSH 远程连接虚拟机了,这样很方便我们查看源码等信息。
下面是一些基本的服务信息:
# apache ...
DVWA 入门靶场学习记录
DVWA 是一个入门的 Web 安全学习靶场,说简单也不简单,结合源码去学习的话,不仅可以入门安全也还可以学到不少安全加固的知识,个人认为国光我写的这个在 DVWA 靶场教程中算是比较细致全面的了。
部署安装安装的这个过程很没有意义,所以这里直接去 Dokcer Hub 随缘搜索一个容器来部署安装:
# 拉取镜像
docker pull sqreen/dvwa
# 部署安装
docker run -d -t -p 8888:80 sqreen/dvwa
然后本地浏览器访问 http://127.0.0.1:8888,我们首先需要初始化一下 DVWA,相关的版本信息如下:
# MySQL root 用户密码为空
$ mysql -e "select version(),user()"
+---------------------------+----------------+
| version() | user() |
+---------------------------+----------------+
| 10.3 ...
Django 编写 Web 漏洞扫描器挖坑记录
Django 很适合用来写安全小工具,因为很多安全工具都是 Python 编写的,所以 Django 集成的话就可以少走很多弯路,又因为 Django 的官方文档比较全,目前 Django 最新的版本都已经到 Django3 了,很适合新手上手使用。文中的项目暂时还没有开源,这个只是国光初次尝试写的第一个版本,代码很多地方都需要重构,功能上也有很多待完善,目前写这篇文章只是想下一下思路,证明自己可以写扫描器,因为之前立过写扫描器的 Flag ,国光建议大家也可以尝试用 Django 之类的 Web 框架整合自己的小工具。
相关技术
Python 3.8.0
Python 3.8 支持许多高级特性,在 Web 漏扫这一块 Python 编写也十分灵活。
Django 3
使用了最新的 Django 版本,Django 是 Python 语言中文档比较全的一个 Web 框架,因为文档比较全,适合新手上手,所以这里选了 Django
MySQL
经典的关系型数据库,实际上因为 Django 可以完美的支持各种数据库,一般我们不需要对数据库进行直接操作,所以换其他的数据库也是可以 ...
SQLI labs 靶场精简学习记录
SQLi Labs 是一个比较全面的手工注入练习靶场,因为很全面,很少有人可以坚持做完,当然国光我也是没有做完,写这篇文章就是逼一下自己,尝试全部做完来看看,233333~
准备工作项目地址:https://github.com/Audi-1/sqli-labs
Sqli-labs 是一个开源且全面的 SQL 注入练习靶场,手工注入必备的练习环境,在 2019 年的 ISCC CTF 上,甚至还有出题人直接套用 Sqli-labs 的 Less-24 的二次注入题目,由此可见这个靶场在圈内的知名度了,手动狗头 😉
安装安装使用 Docker 就比较简单省事儿,直接在 dockerhub 搜索,找下载量比较高(acgpiano/sqli-labs)的来安装:
docker pull acgpiano/sqli-labs
docker run -dt --name sqli-lab -p 8888:80 acgpiano/sqli-labs:latest
自己将8888修改成自己需要映射的端口,这个容器默认是没初始化 SQLi-labs 数据库的,所以得自己初始化一下 ...
Android Termux 安装 Linux 就是这么简单
Termux 在安装好 proot 的情况下,是可以运行 Linux 系统的,利用这个原理,国光写出了 Termux 一键安装 Linux 脚本,让你的 Termux 折腾之路更加简单。
准备工作项目地址: https://github.com/sqlsec/termux-install-linux
因为本脚本使用的是 Python3 编写,所以除了 proot 需要安装以外,还需要基本的 Python 环境,Python 相对于 sh 脚本的优点是更灵活,可操作性更强,人生苦短,我用 Python,另外觉得好用的话 不点点个 star 再走吗。
执行如下命令安装基本依赖:
pkg install proot git python -y
基本操作git clone https://github.com/sqlsec/termux-install-linux
cd termux-install-linux
python termux-linux-install.py
0 学习成本,安装和卸载 Linux 都很方便。
Ubuntucd ~/Termux-Linux/Ubuntu ...
xray Web 扫描器学习记录
长亭科技的 xray 扫描器的扫描效果还不错,在国内颇受好评,很有幸以前在长亭科技工作,技术氛围很好。扯得有点远了,话不多说,本文是是 xray 国光的学习记录,也可以当做新手的 xray 教程来用,不过我还是建议大家看看官方文档,只是国光我最近喜欢上了这种学习记录的感觉,学习效率很高。
简介项目地址:https://github.com/chaitin/xray
长亭科技研发的一款完善的安全评估工具,支持常见 Web 安全问题扫描和自定义 POC,虽然 Github 有项目,但是不开源,只提供社区版本供大家使用。
基本使用代理模式代理模式下的基本架构为,扫描器作为中间人,首先原样转发流量,并返回服务器响应给浏览器等客户端,通讯两端都认为自己直接与对方对话,同时记录该流量,然后修改参数并重新发送请求进行扫描。这种原理和 Burpsuite 的自带的漏扫原理是一样的。
生成 ca 证书# 生成 ca 证书
➜ ./xray genca
# 在当前文件夹生成 ca.crt 和 ca.key 两个文件
➜ ls
ca.crt ca.key config.yaml ...
AWVS13.X API学习记录
AWVS 还是比较经典的,最近想用 Django 去调用 AWVS 的 API,在前辈们公开的 AWVS11 的 API 基础上,国光均一个个测试接口是否正常工作,对工作异常的接口国光也抓包来进行了分析,本文的 AWVS13 API 国光均一一验证过。
准备工作获取 API-KEY「Administrator」-「Profile」-「API Key」-「Generate New Api Key」
国光此时的 API Key 为:
1986ad8c0a5b3df4d7028d5f3c06e936c67fe2c92688a43729821dfd939635a01
Header 设置X-Auth: API-KEY
Content-type: application/json; charset=utf8
下面分别用 curl 和 Python 的 requests 库来简单演示一下 API Key 的使用
查看账户信息的 api 是:
Method:GET
URL: /api/v1/me
curlcurl 'https://127.0.0.1:13443/api/v1/me' ...