LNK文件漏洞简要分析

时间:2023-01-25 07:47:52 其他范文 收藏本文 下载本文

LNK文件漏洞简要分析(精选7篇)由网友“张生肥肥”投稿提供,下面小编给大家整理后的LNK文件漏洞简要分析,欢迎阅读与借鉴!

LNK文件漏洞简要分析

篇1:LNK文件漏洞简要分析

前言

windows的shell32在处理控制面板程序的快捷方式文件时,存在一个漏洞,可以加载硬盘上的任意DLL文件,即可执行任意代码,

漏洞文件的生成

到“控制面板”下面,右键点“显示”,点“创建快捷方式”,把快捷方式创建在桌面上,

然后在桌面用WinHex打开“显示.lnk”文件。

Offset0 1 2 3 4 5 6 7  8 9 A B C D E F

篇2:TinyBrowser远程文件上传漏洞分析

发布日期:-05.27

发布作者:Amxking

影响版本:未知

官方地址: www.lunarvis.com/products/tinymcefilebrowserwithupload.php

漏洞描述: 远程文件上传漏洞

下面我们来看upload.php程序代码

1

2 require_once('config_tinybrowser.php');

3 // Set language

4 if(isset($tinybrowser['language']) && file_exists('langs/'.$tinybrowser['language'].'.php'))

5 {

6 require_once('langs/'.$tinybrowser['language'].'.php');

7 }

8 else

9 {

10 require_once('langs/en.php'); // Falls back to English

11 }

12 require_once('fns_tinybrowser.php');

13

14 // Check session, if it exists

15 if(session_id != '')

16 {

17 if(!isset($_SESSION[$tinybrowser['sessioncheck']]))

18 {

19 echo TB_DENIED;

20 exit;

21 }

22 }

23

24 if(!$tinybrowser['allowupload'])

25 {

26 echo TB_UPDENIED;

27 exit;

28 }

29

30 // Assign get variables

31 $validtypes = array('image','media','file');

32 0now = ((isset($_GET['type']) && in_array($_GET['type'],$validtypes)) ? $_GET['type'] : 'image');

33 $foldernow = str_replace(array('../','..\\','./','.\\'),'',($tinybrowser['allowfolders'] && isset($_REQUEST['folder']) ? urldecode($_REQUEST['folder']) : ''));

34 $passfolder = '&folder='.urlencode($foldernow);

35 $passfeid = (isset($_GET['feid']) && $_GET['feid']!='' ? '&feid='.$_GET['feid'] : '');

36 $passupfeid = (isset($_GET['feid']) && $_GET['feid']!='' ? $_GET['feid'] : '');

37

38 // Assign upload path

39 $uploadpath = urlencode($tinybrowser['path'][0now].$foldernow);

40

41 // Assign directory structure to array

42 $uploaddirs=array();

43 dirtree($uploaddirs,$tinybrowser['filetype'][0now],$tinybrowser['docroot'],$tinybrowser['path'][0now]);

44

45 // determine file dialog file types

46 switch ($_GET['type'])

47 {

48 case 'image':

49 $filestr = TB_TYPEIMG;

50 break;

51 case 'media':

52 $filestr = TB_TYPEMEDIA;

53 break;

54 case 'file':

55 $filestr = TB_TYPEFILE;

56 break;

57 }

58 $fileexts = str_replace(“,”,“;”,$tinybrowser['filetype'][$_GET['type']]);

59 $filelist = $filestr.' ('.$tinybrowser['filetype'][$_GET['type']].')';

60

61 // Initalise alert array

62 $notify = array(

63 'type' =>array(),

64 'message' =>array()

65 );

66 $goodqty = (isset($_GET['goodfiles']) ? $_GET['goodfiles'] : 0);

67 $badqty = (isset($_GET['badfiles']) ? $_GET['badfiles'] : 0);

68 $dupqty = (isset($_GET['dupfiles']) ? $_GET['dupfiles'] : 0);

69

70 if($goodqty>0)

71 {

72 $notify['type'][]='success';

73 $notify['message'][]=sprintf(TB_MSGUPGOOD, $goodqty);

74 }

75 if($badqty>0)

76 {

77 $notify['type'][]='failure';

78 $notify['message'][]=sprintf(TB_MSGUPBAD, $badqty);

79 }

80 if($dupqty>0)

81 {

82 $notify['type'][]='failure';

83 $notify['message'][]=sprintf(TB_MSGUPDUP, $dupqty);

84 }

85 if(isset($_GET['permerror']))

86 {

87 $notify['type'][]='failure';

88 $notify['message'][]=sprintf(TB_MSGUPFAIL, $tinybrowser['docroot'].$tinybrowser['path'][0now]);

89 }

90 ?>

91

92

93

94 TinyBrowser ::

95

96

97

98 if($passfeid == '' && $tinybrowser['integration']=='tinymce')

99 {

100 ?>

101 }

102 else

103 {

104 ?>

105 }

106 ?>

107

108

109 <script. type=“text/javascript”>

篇3:TinyBrowser远程文件上传漏洞分析

From 情blog

程序描述:

TinyBrowser特点 根据配置可以设置是否允许上传、删除、编辑等操作等操作权限

支持多个上传,而且显示上传进度

可以简单编辑图片,比如旋转

可以根据图片名和缩略图列表查看文件

支持FCKeditor编辑器

漏洞分析:

下面我们来看upload.php程序代码

1

2 require_once(config_tinybrowser.php);

3 // Set language

4 if(isset($tinybrowser[language]) && file_exists(langs/.$tinybrowser[language]..php))

5    {

6    require_once(langs/.$tinybrowser[language]..php);

7    }

8 else

9    {

10    require_once(langs/en.php); // Falls back to English

11    }

12 require_once(fns_tinybrowser.php);

13

14 // Check session, if it exists

15 if(session_id() != )

16    {

17    if(!isset($_SESSION[$tinybrowser[sessioncheck]]))

18        {

19        echo TB_DENIED;

20        exit;

21        }

22    }

23

24 if(!$tinybrowser[allowupload])

25    {

26    echo TB_UPDENIED;

27    exit;

28    }

29

30 // Assign get variables

31 $validtypes = array(image,media,file);

32 0now = ((isset($_GET[type]) && in_array($_GET[type],$validtypes)) ? $_GET[type] : image);

33 $foldernow = str_replace(array(../,..\,./,.\),,($tinybrowser[allowfolders] && isset($_REQUEST[folder]) ? urldecode($_REQUEST[folder]) : ));

34 $passfolder = &folder=.urlencode($foldernow);

35 $passfeid = (isset($_GET[feid]) && $_GET[feid]!= ? &feid=.$_GET[feid] : );

36 $passupfeid = (isset($_GET[feid]) && $_GET[feid]!= ? $_GET[feid] : );

37

38 // Assign upload path

39 $uploadpath = urlencode($tinybrowser[path][0now].$foldernow);

40

41 // Assign directory structure to array

42 $uploaddirs=array();

43 dirtree($uploaddirs,$tinybrowser[filetype][0now],$tinybrowser[docroot],$tinybrowser[path][0now]);

44

45 // determine file dialog file types

46 switch ($_GET[type])

47    {

48    case image:

49        $filestr = TB_TYPEIMG;

50        break;

51    case media:

52        $filestr = TB_TYPEMEDIA;

53        break;

54    case file:

55        $filestr = TB_TYPEFILE;

56        break;

57    }

58 $fileexts = str_replace(“,”,“;”,$tinybrowser[filetype][$_GET[type]]);

59 $filelist = $filestr. (.$tinybrowser[filetype][$_GET[type]].);

60

61 // Initalise alert array

62 $notify = array(

63    type =>array(),

64    message =>array()

65 );

66 $goodqty = (isset($_GET[goodfiles]) ? $_GET[goodfiles] : 0);

67 $badqty = (isset($_GET[badfiles]) ? $_GET[badfiles] : 0);

68 $dupqty = (isset($_GET[dupfiles]) ? $_GET[dupfiles] : 0);

69

70 if($goodqty>0)

71    {

72    $notify[type][]=success;

73    $notify[message][]=sprintf(TB_MSGUPGOOD, $goodqty);

74    }

75 if($badqty>0)

76    {

77    $notify[type][]=failure;

78    $notify[message][]=sprintf(TB_MSGUPBAD, $badqty);

79    }

80 if($dupqty>0)

81    {

82    $notify[type][]=failure;

83    $notify[message][]=sprintf(TB_MSGUPDUP, $dupqty);

84    }

85 if(isset($_GET[permerror]))

86    {

87    $notify[type][]=failure;

88    $notify[message][]=sprintf(TB_MSGUPFAIL, $tinybrowser[docroot].$tinybrowser[path][0now]);

89    }

90 ?>

91

92

93

94 TinyBrowser ::

95

96

97

98 if($passfeid == && $tinybrowser[integration]==tinymce)

99    {

100    ?>

101    }

102 else

103    {

104    ?>

105    }

106 ?>

107

108

109

114

115

116      var so = new SWFObject(“flexupload.swf”, “mymovie”, “100%”, “340”, “9”, “#ffffff”);

117      so.addVariable(“folder”, “

118      so.addVariable(”uptype“, ”

119      so.addVariable(“destid”, “

120      so.addVariable(”maxsize“, ”

121      so.addVariable(“sessid”, “

122      so.addVariable(”obfus“, ”

123      so.addVariable(“filenames”, “

124      so.addVariable(”extensions“, ”

125      so.addVariable(“filenamelbl”, “

126      so.addVariable(”sizelbl“, ”

127      so.addVariable(“typelbl”, “

128      so.addVariable(”progresslbl“, ”

129      so.addVariable(“browselbl”, “

130      so.addVariable(”removelbl“, ”

131      so.addVariable(“uploadlbl”, “

篇4:JEECMS漏洞(文件上传)漏洞预警

漏洞描述:这个漏洞很简单,上传没有过滤,注册账号之后去上传头像,jsp 都可以,会提示上传类型错误,弹出对话框,不用管它,关闭弹窗,点击右键查看源代码,你的代码已经上传上了,

JEECMS最新漏洞(文件上传)漏洞预警

上传后的格式为:

www.xxx.com/online/upload/M000000070500007/1349769169860.jsp?o=vLogin

篇5:Win32k.sys键盘布局文件提权漏洞分析

作者:Sebastien Renaud

译者:riusksk(泉哥:riusksk.blogbus.com)

本文将向各位揭示一些关于Stuxnet蠕虫病毒的技术细节,主要旨在讲述作者是如何利用0day漏洞实现代码的通用性,文中讨论的是作者所用到的两个Windows提权漏洞之一。这一漏洞在微软发布的MS10-073升级补丁中已经修复了,但还有另一个windows任务调度(Task Scheduler)漏洞尚未修补。虽然本文将深入分析Stuxnet病毒及其执行的恶意行为,但我们仍将不会公布由来自Symantec和ESET的朋友所写的两份详细文档,包括其具体目录和内容。我们将主要关注下Windows Win32K.sys 键盘布局文件提权漏洞(CVE--2743),并分析下Stuxnet病毒是如何使用自定义的Portable Executable (PE)解析方式来实现代码的通用性的。

1.      漏洞分析

此漏洞存在于windows驱动文件”win32k.sys”中,当其从磁盘中加载一个键盘布局文件时,由于不正当地去索引函数指针列表,导致本地提权漏洞的产生。通常,键盘布局文件是通过”LoadKeyboardLayout”函数来加载的,该函数其实是对win32k syscall函数 ”NtUserLoadKeyboardLayoutEx()” 的封装。下面是加载键盘布局文件后内核中的栈情况:

kd>kn

# ChildEBP RetAddr

00 b0982944 bf861cd1 win32k!SetGlobalKeyboardTableInfo

01 b0982958 bf889720 win32k!ChangeForegroundKeyboardTable+0x11c

02 b0982978 bf87580e win32k!xxxSetPKLinThreads+0x37

03 b09829f0 bf875588 win32k!xxxLoadKeyboardLayoutEx+0x395

04 b0982d40 8053d658 win32k!NtUserLoadKeyboardLayoutEx+0x164

05 b0982d40 7c90e514 nt!KiFastCallEntry+0xf8

06 0012fccc 00402347 ntdll!KiFastSystemCallRet ; (transition from user to kernel)

一旦恶意构造的键盘布局文件被win32k内核驱动加载后,恶意程序将会向键盘输入流中发送一个事件,进而有效地触发漏洞。此过程会调用”user32!SendUserInput()”函数来执行,其实,它是调用了”win32k!NtUserSendInput()”和”win32k!xxxKENLSProcs()”这两个函数:

kd>kn

# ChildEBP RetAddr

00 b0a5ac88 bf848c64 win32k!xxxKENLSProcs

01 b0a5aca4 bf8c355b win32k!xxxProcessKeyEvent+0x1f9

02 b0a5ace4 bf8c341b win32k!xxxInternalKeyEventDirect+0x158

03 b0a5ad0c bf8c3299 win32k!xxxSendInput+0xa2

04 b0a5ad50 8053d658 win32k!NtUserSendInput+0xcd

05 b0a5ad50 7c90e514 nt!KiFastCallEntry+0xf8

06 0012fd08 7e42f14c ntdll!KiFastSystemCallRet

07 0012fd7c 00401ded USER32!NtUserSendInput+0xc

WARNING: Stack unwind information not available. Following frames may be wrong.

08 0012fdac 00401331 CVE_2010_2743+0x1ded

在”win32k!xxxKENLSProcs()”函数里面,win32k驱动会去检索先前加载的键盘布局文件中的某一字节。这一字节会被置入ECX寄存器,然后作为函数指针表的索引值:

; In win32k!xxxKENLSProcs() function starting at 0xBF8A1F9C

; Module: win32k.sys - Module Base: 0xBF800000 - version: 5.1.2600.6003

;

.text:BF8A1F50 movzx ecx, byte ptr [eax-83h] // ECX 可被攻击者控制

.text:BF8A1F57 push edi

.text:BF8A1F58 add eax, 0FFFFFF7Ch

.text:BF8A1F5D push eax

.text:BF8A1F5E call _aNLSVKFProc[ecx*4]       // 索引函数数组指针

aNLSVKFProc函数数组包含有3个函数,并且后面跟随着一段字节数组:

.data:BF99C4B8 _aNLSVKFProc  dd offset _NlsNullProc@12

.data:BF99C4BC                       dd offset _KbdNlsFuncTypeNormal@12

.data:BF99C4C0                       dd offset _KbdNlsFuncTypeAlt@12

.data:BF99C4C4 _aVkNumpad db 67h

.data:BF99C4C5                       db 68h

.data:BF99C4C6                       db 69h

.data:BF99C4C7                       db 0FFh

.data:BF99C4C8                       db 64h

.data:BF99C4C9                       db 65h

.data:BF99C4CA                       db 66h

.data:BF99C4CB                       db 0FFh

.data:BF99C4CC                       db 61h

.data:BF99C4CD                       db 62h

.data:BF99C4CE                       db 63h

.data:BF99C4CF                       db 60h

.data:BF99C4D0                       db 6Eh

.data:BF99C4D1                       db 0

.data:BF99C4D2                       db 0

.data:BF99C4D3                       db 0

[...]

如果请求的索引值大于2,那么代码将会引用字节数组中的值作为指针,

如果索引值为5,那么在函数”win32k!xxxKENLSProcs()”中的代码就会调用0xBF99C4CC处的指针,相当于程序将执行至0x60636261。

kd>dds win32k!aNLSVKFProc L6

bf99c4b8 bf9332ca win32k!NlsSendBaseVk            // index 0

bf99c4bc bf93370c win32k!KbdNlsFuncTypeNormal // index 1

bf99c4c0 bf933752 win32k!KbdNlsFuncTypeAlt       // index 2

bf99c4c4 ff696867                                               // index 3

bf99c4c8 ff666564                                               // index 4

bf99c4cc 60636261                                              // index 5

[...]

2.      通过PE解析提高代码执行的通用性

当aNLSVKFProc函数数组未被引用输出时,为了获得可在各个”win32k.sys”驱动版本上执行恶意代码的通用性,Stuxnet作者必须确保索引数据位于aNLSVKFProc数组之外,并且指向一个可控制的有效指针,然后执行”call”指令

篇6:IIS短文件和文件夹泄漏漏洞的分析

IIS是有微软使用微软windows功能扩展模块创建的一套web服务器应用程序,是世界上第三个最流行的服务器

IIS是有微软使用微软windows功能扩展模块创建的一套web服务器应用程序,是世界上第三个最流行的服务器,

漏洞描述:

漏洞研究小组发现了一个微软IIS的漏洞,攻击者可以利用一个包含”~“的get请求,来让服务器上的文件和文件夹被泄漏、

影响版本:

IIS 1.0, Windows NT 3.51

IIS 2.0, Windows NT 4.0

IIS 3.0, Windows NT 4.0 Service Pack 2

IIS 4.0, Windows NT 4.0 Option Pack

IIS 5.0, Windows

IIS 5.1, Windows XP Professional and Windows XP Media Center Edition

IIS 6.0, Windows Server and Windows XP Professional x64 Edition

IIS 7.0, Windows Server and Windows Vista

IIS 7.5, Windows 7 (远程开启了错误或者没有web.config配置文件的情况下)

IIS 7.5, Windows 2008 (经典托管管道模式)

漏洞分析与利用:

如果网站是运行在IIS服务器上,可以通过”~“来发现一些文件和文件夹,攻击者可以发现重要的文件或者文件夹,如果这些文件或者文件夹是正规的可见文件.

关于此漏洞的深入分析可以参考以下连接中的文章:

soroush.secproject.com/blog//06/microsoft-iis-tilde-character-vulnerabilityfeature-short-filefolder-name-disclosure/

漏洞详细说明:

一直在寻找一种方法,如果我可以使用通配符”*“ 和”?“发送一个请求到iis,我意识到当IIS接收到一个文件路径中包含”~“的请求时,它的反应是不同的.基于这个特点,我们可以根据http的响应区分一个可用或者不可用的文件.在以下的表中,文件validxxx.xxx是存在于网站服务器根目录的.(备注:xxx.xxx是指不确定,还需要继续猜解判断).下图主要是不同版本的IIS返回根据请求的返回错误来判断是否存在某个文件.

举例说明如果一个IIS6网站www.xxx.com的短文件猜解方法

请求 /a*~1*/.aspx 返回404,就说明存在a开头的一个axxx.xxx的文件.(其中xxx.xxx还需要进一步确定判断是什么字母,什么后缀).

请求www.xxx.com/a*~1*/.aspx 返回400,说明不存在a开头的一个axxx.xxx的文件.(其中xxx.xxx还需要进一步确定判断是什么字母,什么后缀).

IIS5.X的判断方法如下:

请求/a*~1* 返回404 说明存在a开头的一个文件。

请求/a*~1* 返回400 说明不存在a开头的一个文件.

IIS7.x.net 2 no error handing判断方法如上图,各位仔细看.

下面附上一个IIS6猜解文件的全过程。

测试地址:sdl.me/AcSecret.html acsecret.html是存在于服务器上的.猜解过程如下图:

附上详细的poc和漏洞利用说明文件:

PoC: www.exploit-db.com/sploits/19525.zip

Paper: www.exploit-db.com/download_pdf/19527

漏洞修复方案:

使用微软或者安全厂商提供的解决方案

使用配置好的Web应用防护系统(拒绝丢弃掉包含”~“线的Web请求)可能会起到对此漏洞进行防范的作用.

漏洞发现者:

Soroush Dalili (@irsdl)

Ali Abbasnejad

漏洞参考:

support.microsoft.com/kb/142982/en-us

soroush.secproject.com/blog/2010/07/iis5-1-directory-authentication-bypass-by-using-i30index_allocation/

站长评论:

其实这是个很鸡肋的“漏洞”……

首先,如果文件名符合8.3规范的文件(文件名主体部分小于等于8个字节、扩展名部分小于等于3个字节),则根本没有短文件名,

其次,汉字和特殊符号等字符的猜解,也是很 的问题……

最后,即使猜出来了,也只有前六位,只能靠运气碰碰看了……

不过,它还是有不小的用处,也算是很另类的一个“漏洞”吧……

(提示:如果目标站自定义了400、404 错误页面,那么该扫描器是无法判断的……)

可以参考下表:

2012/07/04 20:46

!@#!@#~1.TXT !@#!@#!@#.txt

2012/07/04 20:46

!@#!@#.txt

2012/07/04 20:44

012345~1 0123456789

2012/07/04 20:44

1

2012/07/04 20:44

123

2012/07/04 20:44

123456

2012/07/04 20:44

1234567

2012/07/04 20:44

12345678

2012/07/04 20:44

123456~1 123456789

2012/07/04 20:46

啊.txt

2012/07/04 20:46

啊啊啊~1.TXT 啊啊啊啊啊啊啊啊啊.txt

2012/07/04 20:43 29 012345~1.TXT 0123456789.txt

2012/07/04 20:43 29 1.txt

2012/07/04 20:43 29 123.txt

2012/07/04 20:43 29 123456.txt

2012/07/04 20:43 29 1234567.txt

2012/07/04 20:43 29 12345678.txt

2012/07/04 20:43 29 123456~1.TXT 123456789.txt

摘自 Nuclear'Atk 网络安全研究中心

篇7:shopxp pinglun.asp文件SQL注入漏洞分析漏洞预警

漏洞作者:zpino

漏洞存在于/admin/pinglun.asp 文件

<%=webname%>--用户评论

<%dim shopxpptid,action

pinglunid=request.QueryString(”id“)

action=request.QueryString(”action“)

if action=”save“ then

set rs=server.CreateObject(”adodb.recordset“)

rs.open ”select * from shopxp_pinglun where pinglunid=“&pinglunid,conn,1,3

rs(”huifu“)=HTMLEncode2(trim(request(”huifu“)))

rs(”huifudate“)=now()

rs.update

rs.close

set rs=nothing

…………………/*省略*/…………………..

<%set rs=server.CreateObject(”adodb.recordset“)

rs.open ”select * from shopxp_pinglun where pinglunid=“&pinglunid,conn,1,3

%>

首先看到

<%

dim conn,connstr,db

startime=timer()

db=”../shopxp/“&dataname&”“ '数据库

on error resume next '尝试连数据库,一直到超时,但可以加强SQL注入过滤

connstr = ”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=“ & Server.MapPath(db)

'connstr=”DBQ=“+server.mappath(”“&db&”“)+”;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};“

set conn=server.createobject(”ADODB.CONNECTION“)

conn.open connstr

%>

这个文件的作用是获取数据库连接对象,继续回到/admin/pinglun.asp 文件,

pinglunid=request.QueryString(”id“)

action=request.QueryString(”action“)

获取id的值赋给pinglunid,跟进pinglunid,走到

<%set rs=server.CreateObject(”adodb.recordset“)

rs.open ”select * from shopxp_pinglun where pinglunid="&pinglunid,conn,1,3

%>

可以看到没有过滤就被带入到数据库,接下来在下面打印出了查询结果,导致一个SQL漏洞注入产生,

shopxp pinglun.asp文件SQL注入漏洞分析漏洞预警

关于桌面的图标都变成lnk文件如何解决

隔离网络高级威胁攻击预警的分析报告

面试网络工程师的题目

Win7系统如何连接到打印机程序(端口与程序)

如何删掉桌面上烦人的高清影视和淘宝快捷方式

WinCE BSP的BIB文件介绍

解决快捷方式无法使用问题

基于计量经济学的股价因素分析论文

人力资本的论文

一个QQ木马的分析

LNK文件漏洞简要分析
《LNK文件漏洞简要分析.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【LNK文件漏洞简要分析(精选7篇)】相关文章:

电脑基础知识教程第30讲:显示隐藏文件2024-04-13

解决Godaddy主机asp.net无法上传文件的问题2023-07-22

userinit病毒原理及其清除和预防方法2022-06-18

一步一步解决局域网无法连通的问题2022-12-24

cgd是什么文件,cgd文件用什么程序打开2023-02-26

环保论文部份2023-01-03

环保论文2022-10-30

人力资源分析报告2023-05-01

事业单位财务分析报告格式及内容2023-12-01

行政人员述职报告精选2022-12-09