起名过狗菜刀原理同绕了魔术引号的布置

本篇是自我在IT168底约稿,原文地址:http://tech.it168.com/a2014/0620/1637/000001637358_all.shtml

本文作者:i春秋签约作家——凉风

 

首先感谢@我是salf 叫我的灵感

   
IT行业都进来了云时代,未来愈来愈多之号IT基础架构将会合配备在公有云、私有云或者混合云上,而数据库作为IT基础架构中极其重大之片和出口的结合将转移得可怜首要。SQL
Server
2014开了公有云与集体内的关系,无论是运行于小卖部里如故运行在Microsoft
Azure虚拟机上,SQL Server 2014向来帮忙将数据文件和日志部署及Microsoft
Azure公有云存储,从而可以无缝打通公有云和私有云的疆界,架构使图1所出示。

我前面犯了一个帖子:过了D盾扫描的一样句话木马。

起名 1

中分析了同一句话木马的法则,以及过狗、D盾的木马的修。

贪图1.SQL Server 2014从来扶助用数据库文件部署于Azure Blob

传送门:

 

https://bbs.ichunqiu.com/thread-25644-1-1.html 

干什么用用SQL Server数据文件部署在Microsoft Azure

    将数据间接配置在Azure
Blob存储着可以一直牵动诸如性能、数据迁移、数据虚拟化、高可用和灾备方面的便宜。但最重大适用场景和优势如下:

  • 可移植性:在Azure虚拟机环境下,将数据部署于Azure
    Blob中会愈发容易移植,只需要简单以数据库分离,并附加到另一台Azure虚拟机中即可,无需动数据库文件本身。
  • 数据库虚拟化:在呢租户提供服务之云环境中,可以组合SQL Server
    2012从此的包含数据库特性,将负载较高之虚拟机上之数据库平滑移动至其他虚拟机上,从而不相会潜移默化该虚拟机环境之正常运转。
  • 高可用和灾备:由于本数据库文件在Microsoft
    Azure的Blob存储上,因而就虚拟机本身倒,只待将数据库文件附加到其他一样大备机上即可。数据库可于充裕缺少的年华内復苏并且数据本身不深受虚拟机损坏的震慑,从而保证了高RTO和RPO。
  • 不过扩展性:无论在Azure虚拟机上或于铺子中,存储的IOPS都收下具体环境之范围,而以Azure
    Blob存储上,IOPS可以死大。

 

    SQL Server 2014同Azure
Blob存储的崭新交互模块并不只是当存活软件条件中之一个适配机制,而是径直集成为SQL
Server存储引擎。数据看机制使图2所著。

起名 2

祈求2.数据库文件在Azure Blob上之多少看机制

   
由图2可以见见,该数额交互机制不再用虚拟机通过宿主机和IO通道进行互,此时虚拟机可以一向通过REST
API调用存储。从而比在虚拟机上直接访问当地存储有更好之性。

 

       tips:下文需要了解一句话木马的规律,可拘留下面说之帖子

将SQL Server数据文件部署于Microsoft Azure

    下边通过一个例子显示什么将SQL Server数据库文件部署于Azure
Blob存储上。首先,需要在Azure存储着起存储SQL
Server数据库文件之容器,如图3所著。

起名 3

祈求3.白手起家存储数据库文件的器皿

起名,   

   
将容器起名为testsqlfile,访问类型也个人,容器名称标识了数据库文件的拜访地址,如图4所展示。

起名 4

图4.新建容器

 

    接下,创制访问容器的政策及共享访问签名(shared access
signature)。SQL
Server需要之政策与署名才可以与Azure存储上之数据文件举行互动,创设策略和签约的道可以使用编程的计,也得以应用REST
APIs,在本例中,使用CodePlex现有的一个工具举行创办(可在http://azurestorageexplorer.codeplex.com
下载)。

    首先以Microsoft门户中找到访问存储的账户名称和访问密钥,如图5所体现。

起名 5

图5.找到账户号以及访问密钥

 

   
通过该工具成立策略及走访签名,如图6和图7所出示。起名 6

祈求6.创策略

起名 7

希冀7.生改成签名

    签名生成成后,能够因而下述代码在SQL
Server中建立访问Azure存储容器的证据:

CREATE CREDENTIAL [https://portalvhdss6xh8nlhcph8b.blob.core.windows.net/sqldata] 

WITH IDENTITY='SHARED ACCESS SIGNATURE',

SECRET = 'sr=c&si=NewPolicy&sig=%2FhFH82XmxmYSPgvc404WqbK6gIUFfrXmEkKxcmIogWA%3D'

   

    凭据建立好后,在SQL Server
2014中便可以利用该证在Blob存储上创立数据库,在本示例中制造了3单数据文件和1单日志文件,总结31GB,成立用时36秒,,如图8所著。

起名 8

祈求8.在Azure囤积上创制数据库文件

   

    现在因而SQL Server Management
Studio连接到Azure的储存环境,就可以看出刚刚创造的数据库文件,如图9所著。

起名 9

祈求9.在Azure Blob上制造的数据库文件

 

      
tips2:依旧在此地大概的说一下咔嚓,例如木马 assert($_POST[XYZ]),会将用户post的
XYZ=asdfasdf中之asdfasdf作为php代码执行,那是assert这多少个函数的特性,eval同理。

总结

    SQL Server 2014和Microsoft
Azure有了再一次深度的购并,并经过囤引擎引隐藏了无必要细节,用户可就此成立一个平淡无奇数据库形式开创一个以数据库文件存储在Azure存储上之数据库,从而带来性能、可用性、扩充性、灾备甚至数虚拟化方面的补。

恐怕有人因此了自我的马依然叫狗拦了,是为你们的刀不是喽狗刀。

菜刀的官网在上年革新了流行的刀,可以过狗的刀子。(附件)

缘何可以过狗?原理是啊?
前我们分析了平等句话木马的原理,前天我们不怕来分析一下菜刀的办事规律与过狗原理吧。

新版菜刀多矣一个曰caidao.conf的布局文件,自带过狗安排,看图

起名 10

红框中之布就是本次著作的要,也是过狗的要所在(只谈谈php)

特看安排或者拘留无知晓,我们之所以fidder抓包看看,拿了狗菜刀和旧版菜刀做一个比

瞧究竟出啊区别,为啥可以过狗。

故本子菜刀:

起名 11

旧版post了区区个参数,可是于安全狗拦截。

新版菜刀:

起名 12

post了一个参数,绕了了安全狗,并且重回了正规的数量

俺们来比一下post的数目

起名 13

好长,可以看来有多数仍旧base64编码,我们因而周全察看,或者是以去解密,就可以通晓这是菜刀欲履行的指令。

为有利于看,我开个简易的拍卖,去丢命令,把内部的url编码还原成字符

起名 14

可看看

旧版几乎无通过处理,语句的图是:执行经base64解密后底一声令下(这里看不清楚的定如若拘留之事先犯之帖子,或者著作初始的tips)

新版和原本子语句的终极之图是均等的,也是举办经base64解密后的命令,可是新版做了了狗处理,安全狗已经不认这段代码了(不明白叫什么就是给代码吧。。)

(新版的告知句一积反斜杠,是转义,因为代码用了对引号嵌套,双引号里的复引号需要开展转义不然语法错误,我们自行忽略转义符就可以看精晓了)

咱俩看看能免可以和谐写一个过狗的配置,学以致用嘛。

大家只即便诸如自己平的菜比的话,就先备份好安排文件,以防不备

打开配置文件,看看配置文件是改法的格式要求、注意事项什么的。

看图:

起名 15

前几日我们能看精通:红框中的凡我们post的数据被,“密码”= xxxxx中 的 xxxxx

如xxxxx就是服务器一句话木马执行的代码

足见到,菜刀执行命令(圆圈中之%s)用到之函数是菜刀自己协会的assert与eval变形木马,(即红框中代码)为好通晓,那个菜刀自己社团之木马可以称作“木马函数”,大家传到服务器的一律句话木马在此地只是用来施行菜刀传递的即一个“木马函数”,而菜刀传递的另外紧要的授命(圆圈中之%s),都是因为是“木马函数”来实施。就比如是:总经理吩咐首席营业官,高管命令员工
—> 老董通过经营来命令员工。

诸如此类设计是暴发道理的:

     1.
不曾丁领略一句话木马的款式是什么的,变形的同句话木马有好多栽,除了assert和eval以外仍发生另函数可以变成同词话木马,有些不可能协理多告诉句子执行,使用“木马函数”这么些模式大大扩大了兼容性,因为服务器的平等句话木马只需要进行这么些“木马函数”就足以了。

     2.
及时样子,可以在用户操作菜刀时,所有命令集合在一起给“木马函数”一起实施,不用数之为服务器举办多次央,一个命令一个指令的履会大慢滴。(请求过于频繁会无会面被封ip?)

(好了开门红字终于终止了,感觉粉色好丢人,然而表重点还好吧。)

贪图中红框就是我们得改,替换的地方,大家换成自己之布局。经过分析fidder拦截的数据包,大家设执行之通令是base64编码的授命,那个加密的命就作为“木马函数”的参数,在布局文件里用%s表示,我们试试着改改,先试试着修改成较为简单的,易于通晓的又会过狗的布。

看图:

起名 16

好不够的一样词话,直接  (看图,这里叫调和) 就足以了狗,%s就是菜刀传进的base64加密命令。

至于菜刀的通令为何是base64加密,更高级的玩法,本文暂时未钻探,我们可以关押起带的readme.txt

正文就如此截至吗?那怎么对得打我之题目!我可免是标题党!(才怪)(其实对题目起名不是非凡乐意)

专注,其实以下才是本文的要,本菜比摸爬滚打走了许多转路才商量下的,连菜刀原作者都未曾想到的题目(我面子皮厚hhh)

看了了狗菜刀原本的布置,当我看来了相同堆反斜杠,我便想开了gpc魔术引号,如果被了,那么这么些菜刀岂不是废了???

由此测试,新本子菜刀废了。。。好吧,果然跟自身思的同。

以这里感谢秦国的
青鸟  @我是salf  他于自家灵感,我才想到假若入手一个过gpc的安排,不然这首小说就是收了(本菜比吧无会面动那么基本上变化路,不会面弃了一整天讨厌这么些。。这篇稿子至少提前2天出去)(我到底要尽菜了)

惦记绕了gpc,这就是无法发出引号了,旧本子菜刀没有就此引号(臆度是想到有gpc)。

俺们不仅使考虑到引号的问题,还要考虑安全狗,这对本菜比吧难度仍旧好大的。

既然我菜,为何我而召开这??

坐自己查了
,过狗菜刀绕gpc配置,也许是开拓的法子不对,没有查到资料,网上没有哇

既然如此这样自己就是可以以来装逼了hhh(。。。)

(不要告诉自己网上发,我会死失望的,)

不知不觉又尬聊了,

本php菜比的弯路总括:

1.eval函数好举行 echo 、if 等,分号最终必不可少。

2.assert函数内无克来echo,不可知出if,

3.安全狗拦截机制:eval后不可知跟$_POST,也无克加base64_decode,assert相比较eval拦截的要松,

4.assert(0|| xxx)
这么些代码||前边的相会于实践,换成&&后,符号两边都会师履行,就是逻辑运算符,不多介绍。

5.assert得接着base64解密,然后实施解密后底命

6.base64_decode()括号里假使是字符串常量必须带来引号,括号内得放不带引号的变量

布文件先河提到了细分隔符,大家看看分隔符

起名 17

起名 18

入手边的图是菜刀接收的本来的数据,用之凡布置文件被安装的相间符来隔开,要是生过多命的说话会重新直观。菜刀处理了那不自己之回显数据,将数据易成为我们看看底友爱界面。

base64解密大家菜刀的加密部分的一声令下(%s的地点),可以看看  分隔符是用
echo(””)这样的款型出口的,所以未可以就此assert了,大家接纳eval执行菜刀的命,不过eval会于阻碍。。

思路:前边统计5说了assert可以举行base64解密的内容,我们就将eval命令加密,用decode解密后重受assert执行。base64_decode通过$_post[]赋值,加密后的eval也透过post变量赋值

如图:

起名 19

然大家要变更的配备就形容好了,急忙试试看。。

起名 20

遂了成了,感觉这样表明有点傻,但是意思就是是马到成功了,累坏我了,好感动

本身者php菜比移动了那么多变化路竟打来了有效的事物。

为过gpc想了诸多少长度条思路,可是那多少个路都因为各类各类的报错断了,本菜比无精晓呀来头,就未贴出误导我们了。

ps:刚刚发帖为挡了,好以自己备份了,不过假设再放图。。

ps:我得意的可是早了,拦截x3

ps:听士大夫的话,换成全角就ok了,谢谢令尹大人

我们差不多交流吧~不知底可以问问我哦

依附原版过狗刀,刚发之时节将到的。后缀是7z,因为不为上传我哪怕改变成rar

密码是自以到的时段就是自带的 密码:www.maicaidao.com

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图