解决jsEncrypter脚本错误代码不报错问题

    用过我的jsEncrypter插件的朋友,可能会有一个遇到一个大坑: 当编写前端加密调用脚本代码存在错误时,phantomJS不会报错,而且会进入假死,不能继续执行的状态。

阅读全文

构造优质上传漏洞fuzz字典

上传漏洞的利用姿势很多,同时也会因为语言,中间件,操作系统的不同,利用也不同。比如有:大小写混合.htaccess,解析漏洞00截断.绕过空格绕过::$DATA绕过,以及多种姿势的组合等等。当遇到一个上传点,如何全面的利用以上姿势测试一遍,并快速发现可以成功上传webshell的姿势?

阅读全文

编写masscan报告转换脚本

由于nmap扫描比较慢,有时候需要使用masscan对大段ip进行快速扫描。为了后续方便数据处理,往往需要将数据以xls的形式进行统计,但是masscan只支持xml,json,list等格式输出,并不支持直接输出xls格式。最近有正好这个需求,于是写了个小脚本来转换一下。

一、编码

file: masscan-report-converter.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#coding=utf-8
import os
import sys
import time
import argparse
import xml.dom.minidom
import xlsxwriter
from xlsxwriter import Workbook
'''
author: c0ny1
date: 2018-09-28 18:23
'''
def convert_masscan_report(xml_path,xls_path):
workbook = xlsxwriter.Workbook(xls_path)
worksheet = workbook.add_worksheet('Scan info')
worksheet.autofilter("A1:H1") #设置过滤
worksheet.freeze_panes(1, 0) #冻结窗格
worksheet.lastrow = 0
summary_header = ["addr", "port", "state", "protocol", "addrtype", "reason", "reason_ttl", "scan_endtime"]
for idx, item in enumerate(summary_header):
worksheet.write(0, idx, item,workbook.add_format({"bold": True}))
worksheet.lastrow += 1
DOMTree = xml.dom.minidom.parse(xml_path)
data = DOMTree.documentElement
nodelist = data.getElementsByTagName('host')
host_info = {}
for node in nodelist:
scan_endtime = node.getAttribute('endtime')
scan_endtime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(int(scan_endtime)))
address_node = node.getElementsByTagName('address')
addrtype = address_node[0].getAttribute('addrtype')
addr = address_node[0].getAttribute('addr')
port_node = node.getElementsByTagName('port')
for port in port_node:
protocol = port.getAttribute('protocol')
portid = port.getAttribute('portid')
state_element = port.getElementsByTagName('state')
state = state_element[0].getAttribute('state')
reason = state_element[0].getAttribute('reason')
reason_ttl = state_element[0].getAttribute('reason_ttl')
print '[+] | %s | %s | %s | %s | %s | %s | %s | %s |' % (addr,portid,state,protocol,addrtype,reason,reason_ttl,scan_endtime)
scan_info = [addr,portid,state,protocol,addrtype,reason,reason_ttl,scan_endtime]
for i in range(0,len(scan_info)):
worksheet.write(worksheet.lastrow, i, scan_info[i])
worksheet.lastrow += 1
workbook.close()
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument("-i", "--input", metavar="XML", help="path to xml input")
parser.add_argument("-o", "--output", metavar="XLS", help="path to xlsx output")
if len(sys.argv) == 1:
sys.argv.append('-h')
args = parser.parse_args()
if args.input:
xml_path = args.input
else :
exit('[*] please use -i set xml path!')
if os.path.lexists(xml_path) == False:
exit('[*] %s does not exist!',xml_path)
if args.output:
xls_path = args.output
else:
xls_path = './masscan_report.xls'
convert_masscan_report(xml_path,xls_path)

阅读全文

从代码层面理解java的00截断漏洞

我们一般研究00截断,基本都是使用php来写的漏洞demo。所以都知道php下的00截断是和move_upload_file()这个函数有关,和这个漏洞相关的CVE有两个(CVE-2006-7243和CVE-2015-2348 )。但搜索了网上的资料,发现对java的00截断的研究文章甚少。 完全搞不清在java中这个漏洞是和系统,中间件,jdk,还是代码有关?如果是代码问题,那是某个函数存在漏洞呢,还是代码逻辑问题?

阅读全文

GhostScript沙箱绕过命令执行漏洞复现

一、漏洞信息

阅读全文

XSS中的JS转义和HTML转义

今天在给客户做渗透测试时,遇到了一处XSS。虽然很简单,但有点小意思。引发了我对js转义和html转义在XSS中的思考,故做个小笔记记录一下。两个例子都会以仿写现实场景的代码的说明问题。

0x01 一点知识贮备

1.1 关于转义

&#**;格式的字符串是html的转义字符,\是JS的转义符,转义的目的就是告诉解析器该符号为字符,而不是代码,防止代码出现歧义。

阅读全文

Blind XXE经典payload引发的脑洞

payload1是xxe一个经典payload。一般用于无回显的blind xxe。但是问题来了,为何Payload作者将payload内容分两部分(比如像payload1这样),而不是将所有攻击实体放到一个payload中(比如像payload2这样)。注意:Blind XXE是没有回显的,为了测试方便,我将payload有回显的显示了。

阅读全文

10分钟总结所有类型SQL注入

最近在给公司内部培训sql注入。其实很头疼,毕竟sql注入谁都知道,没有什么好讲的。于是一直在思考,这方面我能给大家带来什么干货。毕竟我也不想所有人浪费2个小时听我讲这些已经知道的东西。后来想想也许对于大家来说都知道sql注入,也都了解其原理。但是大家也许并没有对所有的类型进行总结,更不可能从四个维度去梳理sql注入相关知识。于是就有了这篇分享。

阅读全文

复现JBossMQ JMS Invocation Layer漏洞(CVE-2017-7504)

0x01 漏洞信息

项目 描述

阅读全文

复现tomcat远程代码执行漏洞(CVE-2016-8735)

0x01 漏洞信息

项目

阅读全文

项目