最新评论

共12页: 1 2 3 4 5 6 7 8 9 下一页 末页 
Vincent.Q 2012-01-16 22:53
强大,我正找这个类似的东东
南柯之石 2011-10-25 14:18
@海三十 不是一类问题,Background要求值是一个Brush,而你放的Image本来就不是Brush的一种,当然会出错。也应该出错。你这里应该用ImageBrush。
海三十 2011-10-24 14:29
木-叶,你试过background属性的设置没? <Style x:Key="backgroundStyle0" TargetType="{x:Type Window}"> <Setter Property="Background"> <Setter.Value> <Image Source="btu.jpg" /> </Setter.Value> </Setter> </Style> 这个为什么我在NET4.0还是出错呢?错误如你的文章中的提示, 1“System.Windows.Controls.Image”不是 Setter 上“System.Windows.Controls.Panel.Background”属性的有效值。
lixiong 2011-09-25 21:15
[quote]南柯之石: @lixiong 注入空间倒不是问题,只是aslr比较棘手,期待你的迷底。:-)[/quote] 如果注入空间不是问题的话,就自己写一个CreateProcess好了~~
南柯之石 2011-09-25 17:04
@gbb21 嗯,开源的东西不给力啊。
gbb21 2011-09-25 14:00
windows 下面GCC无论是编译效率,还是编译出来的可执行文件的大小和执行效率都比VC差很多唉~
gbb21 2011-09-25 13:58
抛开DEP不说,只要你用VS 编译出来的程序, 即使DEP关闭,你也无法缓冲区攻击,因为他还有堆栈cookie保护~
ZKey 2011-09-25 12:58
[quote]南柯之石: @ZKey [quote]ZKey: @南柯之石 内存区域存在READ WRITE EXEC权限的 栈只有RW 所以你的方法是通过溢出更改ret的返回值 来达到跳转到任意代码位置,这样没有问题。但是你跳转来回,并没有添加新的代码,(如果你坚信栈是可以执行的,那我无能为力)所以只是程序本身内跳转。并且你能操作的只有栈,如果ret返回栈来执行,由于没有exec权限,会有c0000005异常的。不知道你现在明白没有 类似执行WinExec这样的函数 方法是一样的,将本来的ret地址换成WinExec地址,栈中这样 lpCmdLine uCmdShow WinExec 不过字符串定位是...[/quote] 那就华丽丽的换掉把你带坏的编译器#109
南柯之石 2011-09-25 12:04
@ZKey 嗯,的确“Windows真是好欺负”这句是夸张了。
南柯之石 2011-09-25 12:01
@ZKey [quote]ZKey: @南柯之石 内存区域存在READ WRITE EXEC权限的 栈只有RW 所以你的方法是通过溢出更改ret的返回值 来达到跳转到任意代码位置,这样没有问题。但是你跳转来回,并没有添加新的代码,(如果你坚信栈是可以执行的,那我无能为力)所以只是程序本身内跳转。并且你能操作的只有栈,如果ret返回栈来执行,由于没有exec权限,会有c0000005异常的。不知道你现在明白没有 类似执行WinExec这样的函数 方法是一样的,将本来的ret地址换成WinExec地址,栈中这样 lpCmdLine uCmdShow WinExec 不过字符串定位是个问题,可以压入,却难定位,如果程序中...[/quote] movl $0xdeadbeef, %eax jmp 0x1724e8 这就是我注入的新代码呀…… 栈能不能执行,也是要看DEP有没有开启。就像上面 ototsuyume 说的,GCC默认没有PE头中的IMAGE_DLLCHARACTERISTICS_NX_COMPAT标识,也就是说由GCC编译出来的程序,栈是可以执行的。 当然,现实中可能并不存在这么白痴的程序。这里只是为了给出《深入理解计算机系统》练习题3.38的一个参考答案。不是为了教大家如何黑掉现实中的哪个系统。所以,所做的假设可能并不合理。 的确如你所说,现实中的多数程序,栈是不可执行的。但是在这里,这个环境下。(GCC 4.6.1 + Window)它的确是可以执行的。
ZKey 2011-09-25 11:59
[quote]南柯之石: [quote]ZKey: strcpy_s windows建议 同时字符串有\0的截断 同时你的貌似没有太大意义,跳转来回都是程序本身的代码。[/quote] 我承认我注入的两行代码: movl $0xdeadbeef, %eax jmp 0x1724e8 做的事情不多,也不至于就这样被华丽的无视了吧。[/quote] 并没有华丽的无视你,实话.我并不会神马溢出攻击,只是最近有个自卸载内存,用了下这个 名字叫"溢出攻击"的原理. 只是觉得你这标题太大了.
ZKey 2011-09-25 11:49
[quote]南柯之石: @ZKey [quote]ZKey: strcpy_s windows建议 同时你的貌似没有太大意义,跳转来回都是程序本身的代码。[/quote] 我无语了,你确定你看懂了吗?[/quote] 同时这个,如果是输入字符串,我想少不了要用到strcpy函数吧,最新的那个神马ISOxxxx标准提倡_s安全函数,新标准吗,实施的不好,接受的也少.
ZKey 2011-09-25 11:45
@南柯之石 内存区域存在READ WRITE EXEC权限的 栈只有RW 所以你的方法是通过溢出更改ret的返回值 来达到跳转到任意代码位置,这样没有问题。但是你跳转来回,并没有添加新的代码,(如果你坚信栈是可以执行的,那我无能为力)所以只是程序本身内跳转。并且你能操作的只有栈,如果ret返回栈来执行,由于没有exec权限,会有c0000005异常的。不知道你现在明白没有 类似执行WinExec这样的函数 方法是一样的,将本来的ret地址换成WinExec地址,栈中这样 lpCmdLine uCmdShow WinExec 不过字符串定位是个问题,可以压入,却难定位,如果程序中同时拷贝到另一个地址会容易些
ototsuyume 2011-09-25 09:19
[quote]南柯之石: @ototsuyume [quote]ototsuyume:实际上呢,在vs2005跟vs2008装了win7补丁后就可以设置关系栈的可执行属性,默认是打开的,也就是所谓的dep。而且呢,elf文件跟pe文件里面都有字段是表明堆栈段是否有可执行属性的,所以,你在sb窗口7里面用gcc去编译东西呢,人家不往那个位设置打开dep,栈段自然就是可执行的了,要是这样说sb窗口7好欺负,那实在是很冤枉微$的。自从vista引入了aslr跟dep后,安全性已经提高几个档次了,所以呢,不要认为sb窗口7好欺负了[/quote] 原来如此。看来是冤枉W7了。可我在Ubuntu下也是用GCC,这种...[/quote] 首先,dep跟ExecShield都是要先由os支持,像xp sp1跟之前的linux都不支持这样的功能。其次才轮到编译器在链接的时候去设置elf或pe相关的标志位。为什么windows上的gcc不默认开启这个编译选项,可能是它本身就不支持,又或者是出于其他考虑。不过我查了一下,似乎gcc是不支持的,要靠其他工具去实现,参考这里:http://www.ziki.com/fr/gcouprie+37899/post/enable-dep-and-aslr-with-mingw+10897502
南柯之石 2011-09-25 01:07
@lixiong 注入空间倒不是问题,只是aslr比较棘手,期待你的迷底。:-)
南柯之石 2011-09-25 01:05
@ototsuyume [quote]ototsuyume:实际上呢,在vs2005跟vs2008装了win7补丁后就可以设置关系栈的可执行属性,默认是打开的,也就是所谓的dep。而且呢,elf文件跟pe文件里面都有字段是表明堆栈段是否有可执行属性的,所以,你在sb窗口7里面用gcc去编译东西呢,人家不往那个位设置打开dep,栈段自然就是可执行的了,要是这样说sb窗口7好欺负,那实在是很冤枉微$的。自从vista引入了aslr跟dep后,安全性已经提高几个档次了,所以呢,不要认为sb窗口7好欺负了[/quote] 原来如此。看来是冤枉W7了。可我在Ubuntu下也是用GCC,这种攻击就行不通。这是因为GCC歧视Windows故意的呢?还是Ubuntu的安全机制不依赖编译器呢?
南柯之石 2011-09-25 00:56
@通用权限组件源码 NetBeans呀
lixiong 2011-09-25 00:23
[quote]南柯之石: @ZKey [quote]ZKey: strcpy_s windows建议 但是你都可以做这2个事情了,难道就不能直接开个远程线程?[/quote] 通过缓冲区溢出,已经可以执行任何注入的代码了,还开什么线程?[/quote] 抛弃什么DPE的不说,即便是可以执行任何注入的代码了,现在这个题目还有两个关键的问题,不知道楼主能否继续努力一下: 假设这个程序运行在管理员权限下。攻击者试图通过这个漏洞来创建一个管理员权限的cmd。换句话说,攻击者是否能通过注入,让这个程序运行 CreateProcess("cmd.exe"...); 目前的问题是: 1. 注入的空间有限,所以无法直接注入CreateProcess的调用代码。 2. 就算可以,在64位的系统上,操作系统默认对CreateProcess API的地址随机化了,注入的时候如何准确定位CreateProcess的地址。 楼主,有什么好办法么? (我的谜底过一段时间后揭晓)
ototsuyume 2011-09-24 23:50
实际上呢,在vs2005跟vs2008装了win7补丁后就可以设置关系栈的可执行属性,默认是打开的,也就是所谓的dep。而且呢,elf文件跟pe文件里面都有字段是表明堆栈段是否有可执行属性的,所以,你在sb窗口7里面用gcc去编译东西呢,人家不往那个位设置打开dep,栈段自然就是可执行的了,要是这样说sb窗口7好欺负,那实在是很冤枉微$的。自从vista引入了aslr跟dep后,安全性已经提高几个档次了,所以呢,不要认为sb窗口7好欺负了
sm11e 2011-09-24 20:08
弱弱问下楼主,有什么作用呢。科普下:)
通用权限组件源码 2011-09-24 19:36
这个是什么编辑器?
南柯之石 2011-09-24 17:53
@yyww 这种漏洞可以执行任意代码,你觉得能提权限吗? 能用这东西做什么取决于你的想象力。
南柯之石 2011-09-24 17:41
@诺贝尔 呵呵,这是另一个问题。 本文介绍缓冲区溢出攻击的原理和方法。找到哪里有缓冲区溢出漏洞就不是一篇文章就可以讲明白的了。
yyww 2011-09-24 17:35
通过这个能提升权限吗。 如果不行话,有用吗
南柯之石 2011-09-24 17:34
@gbb21 没什么问题?安全问题?
诺贝尔 2011-09-24 15:22
问题你怎么知道要攻击的程序本身是什么构造的呢?
gbb21 2011-09-24 14:40
@南柯之石 DEP 默认只是开启保护系统核心程序,从来没有开启保护所有程序~
gbb21 2011-09-24 14:36
编译器土,谁也没办法,用VC就没问题了~
南柯之石 2011-09-24 11:11
@ZKey [quote]ZKey: strcpy_s windows建议 但是你都可以做这2个事情了,难道就不能直接开个远程线程?[/quote] 通过缓冲区溢出,已经可以执行任何注入的代码了,还开什么线程?
南柯之石 2011-09-24 10:56
@ZKey [quote]ZKey:同时可以通过巧妙的设置,执行api如ShellExecute WinExec这些,启动一些程序.但是同样的都具备了这些条件,我想已经可以完全控制机器,根本不用再用什么缓冲区攻击了[/quote] 不知道您指的“通过妙的设置,执行api如ShellExecute WinExec这些”是如何实现的?求指教。
南柯之石 2011-09-24 10:48
[quote]ZKey: strcpy_s windows建议 同时字符串有\0的截断 同时你的貌似没有太大意义,跳转来回都是程序本身的代码。[/quote] 我承认我注入的两行代码: movl $0xdeadbeef, %eax jmp 0x1724e8 做的事情不多,也不至于就这样被华丽的无视了吧。
南柯之石 2011-09-24 10:45
@ZKey [quote]ZKey: strcpy_s windows建议 同时你的貌似没有太大意义,跳转来回都是程序本身的代码。[/quote] 我无语了,你确定你看懂了吗?
ZKey 2011-09-24 10:44
同时可以通过巧妙的设置,执行api如ShellExecute WinExec这些,启动一些程序.但是同样的都具备了这些条件,我想已经可以完全控制机器,根本不用再用什么缓冲区攻击了
ZKey 2011-09-24 10:40
strcpy_s windows建议 同时字符串有\0的截断 同时你的貌似没有太大意义,跳转来回都是程序本身的代码。如果你想执行额外的代码,需要先写入,同时设置区段的内存属性。但是你都可以做这2个事情了,难道就不能直接开个远程线程? 另外对于缓冲区溢出,通常都是程序去搞定,操作系统只管权限就可以了.
南柯之石 2011-09-24 01:40
@周巍 It was. That option is enabled by default.
ini_always 2011-09-24 01:29
很久前试着玩过缓冲区溢出。。。
周巍 2011-09-24 01:29
Try to turn on DEP for all programs and services.
Virus-BeautyCode 2011-09-23 13:21
研究的不错
南柯之石 2011-09-23 13:15
@百分百好牛 嘿嘿,从Office里Copy出来给丢了。刚加上了。
安度 2011-09-23 12:11
满眼的浮云啊...这都是 神马,看不明白
百分百好牛 2011-09-23 11:12
楼主,你的“黄色高亮”的代码在哪里呀,俺看不到。:)
cxh116 2011-09-23 10:35
在局域网这个很危险,比如公共WIFI,其它的时候应该没多大事
一有新人 2011-08-22 17:14
@WILLPAN 下个抓包软件就行了,google一下,你就知道
WILLPAN 2011-08-22 15:45
楼主,可不可以教我怎么截取网络包。
BloodyAngel 2011-08-09 16:49
这个代码在后台用 C# 应该怎么写啊,博主?
南柯之石 2011-05-11 16:10
//可读性高很多 //分3段(AB, ABC..., ACD),每段内部再进行Ordianl比较(大写>小写) ab aB Ab AB aBccccc Abccccccc Abd 我个人会比较期待,第一个字母相同,就排在一起。您不觉得这个“排序”结果,仅仅第一个字母,就一会大写,一会儿小写。很不和谐么?
_Mgen 2011-05-11 15:36
@南柯之石 我印象中C/C++的字符串比较都是小写>大写。你说大写>小写是属于其他函数库? 不过无所谓了,都类似于Ordinal比较(就是大写小写谁大谁小不一样),你的问题应该可以等于InvariantCulture相对Ordinal比较有什么意义呢? 我觉得(个人意见)InvariantCulture比较结果可读性更高,用在针对用户输出上比较好。 比如这几个字符串:"Ab", "aB", "AB", "ab", "Abccccccc", "aBccccc", "Abd" 排序结果: ===== Ordinal //其实排序后肉眼看上去还很乱 AB Ab Abccccccc Abd aB aBccccc ab ===== InvariantCulture //可读性高很多 //分3段(AB, ABC..., ACD),每段内部再进行Ordianl比较(大写>小写) ab aB Ab AB aBccccc Abccccccc Abd 测试代码(C#) [code=csharp] string[] arr = { "Ab", "aB", "AB", "ab", "Abccccccc", "aBccccc", "Abd" }; Array.Sort<string>(arr, StringComparer.Ordinal); Console.WriteLine(String.Join("\n", arr)); Console.WriteLine(); Array.Sort<string>(arr, StringComparer.InvariantCulture); Console.WriteLine(String.Join("\n", arr)); [/code]
南柯之石 2011-05-09 16:04
@_Mgen 非常感谢您的解释。但这样的排放方式有什么实际的用途呢?您看C++的排序方式,就是字典的排序方式。很直观,很好理解。.NET这种会在什么情况下用到呢?
_Mgen 2011-05-06 21:52
[quote]String::Compare("ac", "Ab"): 1 // 这个是我最不能理解的。明明是区分大小写的比[/quote] 不用Ordinal的话,系统会用当前线程的CurrentCulture,而大多数CultureInfo和InvariantCulture比较方式一样: 如果字符不一样(不区分大小写) - 输出结果 (因此b>AB,B>abc) 否则 比较如果长度不一样 - 输出结果 (因此abc>AB>ab) 否则 进行大小写比较依次比较 (比如:AB>Ab>aB>ab) 所以ac比较Ab,第一位视为相等,第二位立刻比较出结果c>b
_Mgen 2011-05-06 21:41
我写过一篇关于InvariantCulture的文章,结尾有通过Ordinal,InvariantCulture和其他CultureInfo进行字符串比较的结果和简要解释,希望有所帮助。 地址: http://www.cnblogs.com/mgen/archive/2011/05/05/2037603.html
共12页: 1 2 3 4 5 6 7 8 9 下一页 末页