分类 技术分享 下的文章

IE的execCommand

先看IE大老爷的execCommand。跟踪可以发现,IE支持下列execCommand指令:

.text:63C0DB06 ; ---------------------------------------------------------------------------
.text:63C0DB08 ; public: static struct CBase::CMDINFOSTRUCT const * const CBase::cmdTable
.text:63C0DB08 ?cmdTable@CBase@@2QBUCMDINFOSTRUCT@1@B dd offset loc_63848E05+3
.text:63C0DB08                                         ; DATA XREF: CBase::CmdIDFromCmdName(ushort const *,ulong *)+21r
.text:63C0DB08                                         ; CBase::CmdIDFromCmdName(ushort const *,ulong *)+29o ...
.text:63C0DB0C ; int dword_63C0DB0C[]
.text:63C0DB0C dword_63C0DB0C  dd 919h                 ; DATA XREF: CBase::CmdIDFromCmdName(ushort const *,ulong *)+52r
.text:63C0DB10                 dd offset aAutourldetect ; "AutoUrlDetect"
.text:63C0DB14                 dd 960h
.text:63C0DB18                 dd offset aCreatebookmark ; "CreateBookmark"
.text:63C0DB1C                 dd 84Bh
.text:63C0DB20                 dd offset aCreatelink   ; "CreateLink"
.text:63C0DB24                 dd 84Ch
.text:63C0DB28                 dd offset aInsertimage  ; "InsertImage"
.text:63C0DB2C                 dd 878h
.text:63C0DB30                 dd offset aBold_0       ; "Bold"
.text:63C0DB34                 dd 34h
.text:63C0DB38                 dd offset aTristatebold ; "TristateBold"
.text:63C0DB3C                 dd 5Fh
.text:63C0DB40                 dd offset aBrowsemode   ; "BrowseMode"
.text:63C0DB44                 dd 84Eh
.text:63C0DB48                 dd offset aEditmode     ; "EditMode"
.text:63C0DB4C                 dd 84Fh
.text:63C0DB50                 dd offset aInsertbutton ; "InsertButton"
.text:63C0DB54                 dd 877h
.text:63C0DB58                 dd offset aInsertiframe ; "InsertIFrame"
.text:63C0DB5C                 dd 86Eh
.text:63C0DB60                 dd offset aInsertinputbut ; "InsertInputButton"
.text:63C0DB64                 dd 843h
.text:63C0DB68                 dd offset aInsertinputche ; "InsertInputCheckbox"
.text:63C0DB6C                 dd 873h
.text:63C0DB70                 dd offset aInsertinputima ; "InsertInputImage"
.text:63C0DB74                 dd 842h
.text:63C0DB78                 dd offset aInsertinputrad ; "InsertInputRadio"
.text:63C0DB7C                 dd 874h
.text:63C0DB80                 dd offset aInsertinputtex ; "InsertInputText"
.text:63C0DB84                 dd 871h
.text:63C0DB88                 dd offset aInsertselectdr ; "InsertSelectDropdown"
.text:63C0DB8C                 dd 875h
.text:63C0DB90                 dd offset aInsertselectli ; "InsertSelectListbox"
.text:63C0DB94                 dd 876h
.text:63C0DB98                 dd offset aInserttextarea ; "InsertTextArea"
.text:63C0DB9C                 dd 872h
.text:63C0DBA0                 dd offset aItalic       ; "Italic"
.text:63C0DBA4                 dd 38h
.text:63C0DBA8                 dd offset aTristateitalic ; "TristateItalic"
.text:63C0DBAC                 dd 60h
.text:63C0DBB0                 dd offset aSizetocontrol ; "SizeToControl"
.text:63C0DBB4                 dd 23h
.text:63C0DBB8                 dd offset aSizetocontrolh ; "SizeToControlHeight"
.text:63C0DBBC                 dd 24h
.text:63C0DBC0                 dd offset aSizetocontrolw ; "SizeToControlWidth"
.text:63C0DBC4                 dd 25h
.text:63C0DBC8                 dd offset aUnderline_1  ; "Underline"
.text:63C0DBCC                 dd 3Fh
.text:63C0DBD0                 dd offset aTristateunderl ; "TristateUnderline"
.text:63C0DBD4                 dd 61h
.text:63C0DBD8                 dd offset aCopy         ; "Copy"
.text:63C0DBDC                 dd 0Fh
.text:63C0DBE0                 dd offset aCut          ; "Cut"
.text:63C0DBE4                 dd 10h
.text:63C0DBE8                 dd offset psz2          ; "Delete"
.text:63C0DBEC                 dd 11h
.text:63C0DBF0                 dd offset aPrint        ; "Print"
.text:63C0DBF4                 dd 5Dh
.text:63C0DBF8                 dd offset aJustifycenter ; "JustifyCenter"
.text:63C0DBFC                 dd 39h
.text:63C0DC00                 dd offset aJustifyfull  ; "JustifyFull"
.text:63C0DC04                 dd 32h
.text:63C0DC08                 dd offset aJustifyleft  ; "JustifyLeft"
.text:63C0DC0C                 dd 3Bh
.text:63C0DC10                 dd offset aJustifyright ; "JustifyRight"
.text:63C0DC14                 dd 3Ch
.text:63C0DC18                 dd offset aJustifynone  ; "JustifyNone"
.text:63C0DC1C                 dd 5Eh
.text:63C0DC20                 dd offset aPaste_0      ; "Paste"
.text:63C0DC24                 dd 1Ah
.text:63C0DC28                 dd offset aMsPastecontent ; "ms-pasteContentOnly"
.text:63C0DC2C                 dd 9C4h
.text:63C0DC30                 dd offset aMsPastetextonl ; "ms-pasteTextOnly"
.text:63C0DC34                 dd 9C5h
.text:63C0DC38                 dd offset aPlayimage    ; "PlayImage"
.text:63C0DC3C                 dd 8DFh
.text:63C0DC40                 dd offset aStopimage    ; "StopImage"
.text:63C0DC44                 dd 8E0h
.text:63C0DC48                 dd offset aInsertinputres ; "InsertInputReset"
.text:63C0DC4C                 dd 844h
.text:63C0DC50                 dd offset aInsertinputsub ; "InsertInputSubmit"
.text:63C0DC54                 dd 845h
.text:63C0DC58                 dd offset aInsertinputfil ; "InsertInputFileUpload"
.text:63C0DC5C ; ---------------------------------------------------------------------------
.text:63C0DC5C                 inc     esi
.text:63C0DC5D                 or      [eax], al
.text:63C0DC5F                 add     [eax], bh
.text:63C0DC61                 retf
.text:63C0DC61 ; ---------------------------------------------------------------------------
.text:63C0DC62                 dw 63C0h
.text:63C0DC64                 dd 847h
.text:63C0DC68                 dd offset aUnselect     ; "Unselect"
.text:63C0DC6C                 dd 7D7h
.text:63C0DC70                 dd offset aBackcolor    ; "BackColor"
.text:63C0DC74                 dd 33h
.text:63C0DC78                 dd offset aForecolor    ; "ForeColor"
.text:63C0DC7C                 dd 37h
.text:63C0DC80                 dd offset aFontname     ; "FontName"
.text:63C0DC84                 dd 12h
.text:63C0DC88                 dd offset aFontsize_0   ; "FontSize"
.text:63C0DC8C                 dd 13h
.text:63C0DC90                 dd offset aGetblockformat ; "GetBlockFormats"
.text:63C0DC94 ; ---------------------------------------------------------------------------
.text:63C0DC94                 mov     ecx, 6C000008h
.text:63C0DC99                 retf
.text:63C0DC99 ; ---------------------------------------------------------------------------
.text:63C0DC9A                 dw 63C0h
.text:63C0DC9C ; ---------------------------------------------------------------------------
.text:63C0DC9C                 mov     edx, 84000008h
.text:63C0DCA1                 retf
.text:63C0DCA1 ; ---------------------------------------------------------------------------
.text:63C0DCA2                 dw 63C0h
.text:63C0DCA4                 dd 88Ah
.text:63C0DCA8                 dd offset aInsertmarquee ; "InsertMarquee"
.text:63C0DCAC                 dd 886h
.text:63C0DCB0                 dd offset aInsertorderedl ; "InsertOrderedList"
.text:63C0DCB4                 dd 888h
.text:63C0DCB8                 dd offset aInsertparagrap ; "InsertParagraph"
.text:63C0DCBC                 dd 884h
.text:63C0DCC0                 dd offset aInsertunordere ; "InsertUnorderedList"
.text:63C0DCC4                 dd 889h
.text:63C0DCC8                 dd offset aOutdent      ; "Outdent"
.text:63C0DCCC                 dd 88Bh
.text:63C0DCD0                 dd offset aUioutdent    ; "UIOutdent"
.text:63C0DCD4                 dd 967h
.text:63C0DCD8                 dd offset aRedo         ; "Redo"
.text:63C0DCDC                 dd 1Dh
.text:63C0DCE0                 dd offset aRefresh      ; "Refresh"
.text:63C0DCE4                 dd 8FCh
.text:63C0DCE8                 dd offset aRemoveparaform ; "RemoveParaFormat"
.text:63C0DCEC                 dd 8CDh
.text:63C0DCF0                 dd offset aRemoveformat ; "RemoveFormat"
.text:63C0DCF4                 dd 8B6h
.text:63C0DCF8                 dd offset aSelectall    ; "SelectAll"
.text:63C0DCFC                 dd 1Fh
.text:63C0DD00                 dd offset aStrikethrough ; "StrikeThrough"
.text:63C0DD04                 dd 5Bh
.text:63C0DD08                 dd offset aSubscript    ; "Subscript"
.text:63C0DD0C                 dd 8C7h
.text:63C0DD10                 dd offset aSuperscript  ; "Superscript"
.text:63C0DD14                 dd 8C8h
.text:63C0DD18                 dd offset aUndo         ; "Undo"
.text:63C0DD1C                 dd 2Bh
.text:63C0DD20                 dd offset aUnlink       ; "Unlink"
.text:63C0DD24                 dd 84Dh
.text:63C0DD28                 dd offset aInserthorizont ; "InsertHorizontalRule"
.text:63C0DD2C                 dd 866h
.text:63C0DD30                 dd offset aUnbookmark   ; "UnBookmark"
.text:63C0DD34                 dd 850h
.text:63C0DD38                 dd offset aOverwrite    ; "OverWrite"
.text:63C0DD3C                 dd 90Ah
.text:63C0DD40                 dd offset aInsertinputpas ; "InsertInputPassword"
.text:63C0DD44                 dd 909h
.text:63C0DD48                 dd offset aInsertinputhid ; "InsertInputHidden"
.text:63C0DD4C                 dd 908h
.text:63C0DD50                 dd offset aDirltr       ; "DirLTR"
.text:63C0DD54                 dd 92Eh
.text:63C0DD58                 dd offset aDirrtl       ; "DirRTL"
.text:63C0DD5C                 dd 92Fh
.text:63C0DD60                 dd offset aBlockdirltr  ; "BlockDirLTR"
.text:63C0DD64                 dd 930h
.text:63C0DD68                 dd offset aBlockdirrtl  ; "BlockDirRTL"
.text:63C0DD6C                 dd 931h
.text:63C0DD70                 dd offset aInlinedirltr ; "InlineDirLTR"
.text:63C0DD74                 dd 932h
.text:63C0DD78                 dd offset aInlinedirrtl ; "InlineDirRTL"
.text:63C0DD7C                 dd 933h
.text:63C0DD80                 dd offset aSaveas       ; "SaveAs"
.text:63C0DD84                 dd 47h
.text:63C0DD88                 dd offset aOpen         ; "Open"
.text:63C0DD8C                 dd 7D0h
.text:63C0DD90                 dd offset aStop         ; "Stop"
.text:63C0DD94                 dd 85Ah
.text:63C0DD98                 dd offset aMultipleselect ; "MultipleSelection"
.text:63C0DD9C                 dd 959h
.text:63C0DDA0                 dd offset a2dPosition   ; "2D-Position"
.text:63C0DDA4                 dd 95Ah
.text:63C0DDA8                 dd offset aAbsolutepositi ; "AbsolutePosition"
.text:63C0DDAC                 dd 95Dh
.text:63C0DDB0                 dd offset aLiveresize   ; "LiveResize"
.text:63C0DDB4                 dd 95Eh
.text:63C0DDB8                 dd offset aKeepselection ; "KeepSelection"
.text:63C0DDBC                 dd 96Ah
.text:63C0DDC0                 dd offset aRespectvisibil ; "RespectVisibilityInDesign"
.text:63C0DDC4                 dd 965h
.text:63C0DDC8                 dd offset aUnloaddocument ; "UnloadDocument"
.text:63C0DDCC                 dd 96Bh
.text:63C0DDD0                 dd offset aClearauthentic ; "ClearAuthenticationCache"
.text:63C0DDD4                 dd 3A9Bh
.text:63C0DDD8                 dd offset aBackgroundim_2 ; "BackgroundImageCache"
.text:63C0DDDC                 dd 97Eh
.text:63C0DDE0                 dd offset aDefaultparagra ; "DefaultParagraphSeparator"
.text:63C0DDE4                 dd 0F3Ch
.text:63C0DDE8                 dd offset aMsBeginundouni ; "ms-beginUndoUnit"
.text:63C0DDEC                 dd 0F3Dh
.text:63C0DDF0                 dd offset aMsEndundounit ; "ms-endUndoUnit"
.text:63C0DDF4                 dd 0F3Eh
.text:63C0DDF8                 dd offset aMsClearundosta ; "ms-clearUndoStack"
.text:63C0DDFC                 dd 0F3Fh
.text:63C0DE00                 dd offset aHilitecolor  ; "HiliteColor"
.text:63C0DE04                 dd 33h, 2 dup(0)
.text:63C0DE10                 db 5 dup(90h)

在网页中调用execCommand之后,在IE中分别经过了:

CFastDOM::CDocument::Trampoline_execCommand(void *,CallInfo,...)
CDocument::execCommand(ushort *,short,tagVARIANT,short *)
CBase::execCommand(ushort * const,short,tagVARIANT)

三步,CBase继承于CDocument嘛,其他细节不用在意。

想起来再写

【MS16-119】IE11信息泄漏漏洞

2016/10/11 已发布补丁。(中)
MS16-119
Microsoft Browser Information Disclosure Vulnerability
CVE-2016-3267
Wenxiang Qian of Tencent QQBrowser

2016/9/22 预计发布。

2016/3/24 微软确认漏洞
2016/3/22 微软收到漏洞报告
2016/3/21 发现漏洞

CVE-2016-0161(MS16-038) Edge特权提升漏洞【已经修复】

提交了一个Edge中js协议处理相关的漏洞,跟踪一下进度。 预计公开 2016/7/1。

Microsoft Edge 特权提升漏洞 - CVE-2016-0161
当 Microsoft Edge 在特定条件下未正确验证 JavaScript 时会存在特权提升漏洞,可能允许使用提升特权运行脚本。 在基于 Web 的攻击情形中,攻击者可能拥有一个网站以试图利用此漏洞。
另外,受到破坏的网站以及接受或托管用户提供的内容的网站可能包含可利用此漏洞的经特殊设计的内容。 不过,在所有情况下,攻击者无法强制用户查看由攻击者控制的内容。 相反,攻击者需要诱使用户执行操作。 例如,攻击者可以诱骗用户单击链接转到攻击者的网站。 成功利用此漏洞的攻击者可以在受影响的 Microsoft Edge 版本中提升特权。 攻击者随后可将这些特权与另一个漏洞一起用于通过中等完整性级别特权(当前用户的权限)运行任意代码。
此漏洞本身不允许运行任意代码。 但是,此漏洞可能与在运行任意代码时利用提升特权的另一漏洞(例如,远程执行代码漏洞)结合使用。 例如,攻击者可以利用另一个漏洞以通过 Microsoft Edge 运行任意代码,但是由于 Internet Explorer 启动的进程的上下文,代码可能被限制为在较低的完整性级别(权限非常有限)运行。
但是,攻击者随后可能利用此漏洞导致任意代码在中等完整性级别(当前用户的权限)运行。 该更新通过向 Microsoft Edge 添加附加权限验证来解决漏洞。
下表包含指向“常见漏洞和披露”列表中每个漏洞标准条目的链接:

MS16-038 Microsoft Edge Information Disclosure Vulnerability CVE-2016-0161 WenXiang Qian

2016/4/12 4月补丁已经更新
2016/3/26 微软表示5月发布补丁。
2016/3/3 微软表示:不好修啊。
2016/3/2 询问进度
2016/2/11 一个月过去了,什么都没有发生。
2016/1/8 微软确认漏洞
2016/1/3 提交漏洞