【结束】[第一阶段◇第四题]看雪论坛.腾讯公司2008软件安全技术竞赛
本次比赛规则及奖品请参看此帖:
http://bbs.pediy.com/showthread.php?t=73422
致谢
非常感谢zmworm提供的精彩题目 ,受益匪浅。
第一阶段比赛说明
本阶段共四道题目,每题计分每题的计分方法,将在题目放出时公布。(各题的分数将算入最后的总数,在决定最终名次时,每一题都很重要)。四道题不是同时给出,在第一题结束后,再放出第二题,以此类推。但无论答题正确与否,都有资格参与下一题的回答。若题目答错或未答,该题均计0分。
第一阶段第四题
Windows API StretchDIBits 的代码中存在一个BUG(已测试xp sp2和xp sp3),通过利用这个BUG,我们可以精心构筑一个PE文件,当我们使用Explorer.exe 查看含有这个文件的文件夹时,可以让Exploer.exe发生崩溃。
StretchDIBits的函数原型:
WINGDIAPI BOOL WINAPI StretchDIBits(
HDC hdc,
int XDest,
int YDest,
int nDestWidth,
int nDestHeight,
int XSrc,
int YSrc,
int nSrcWidth,
int nSrcHeight,
CONST VOID* lpBits,
CONST BITMAPINFO* lpBitsInfo,
UINT iUsage,
DWORD dwRop
);
答题要求
1. 尝试找到这个函数的BUG.
2. 利用这个BUG构造上述所描述的那个PE文件.
3. 将分析文档和相关测试源代码一起上传,同时描述一下分析过程。
4. 上传方式:将分析文档和相关测试源代码打包后,一起上传到“
看雪论坛.腾讯公司2008软件安全竞赛答案提交区 ”。
其他注意事项
1.比赛答题期间,不得在论坛或群等公开场所讨论。
2.比赛答题期间,不得泄露测试程序任何相关技术细节。
3.违反第1,2条,取消相关人员比赛资格
提交机会 :此题每个选手有多次提交附件的机会.但从第二次提交附件起,每提交一次分数减5分做为惩罚,详见计分公式.以最后一次提交结果为最终计分结果,之前的提交不进行计分.
计分公式 :
参数说明:
做题时间:是指从2008-10-11 12:00开始到该次附件提交的时间的总共分钟数。
K:
如果提交的答案只能描述这个函数的可以利用的BUG并且给出详细跟踪分析过程,k的值取0.3
如果提交的答案除了上述结果外,利用这个BUG构造出上述所描述的PE文件并给出详细分析文档,k的值取1
答题时间 :2008-10-11 12:00 至 2008-10-14 12:00止.
通过标准 :
分两种情况,满足下面两条中任一条视为通过,但是公式中k的值不一样。
1.提交的答案只能描述这个函数的可以利用的BUG并且给出详细跟踪分析过程,k = 0.3。
2.提交的答案除了上述结果外,利用这个BUG构造出上述所描述的PE文件并给出详细分析文档,k = 1。
附加标准:
3.这个BUG是否有其他的的应用方法,找到除构造PE的攻击实例有加分(最多10分)(比如如果没有找到PE利用文件,只找到其他利用文件,k = 0.3,另外也只能最多加10分)
4.这个函数是否有其他的BUG,找到两个以上BUG的位置有加分,要用文章说明BUG的原因,并构造攻击实例. (最多10分)(如果只找到多个bug,k 仍然= 0.3,另外也只能最多加10分)
注意
1.以最后一次提交结果为最终计分结果,之前的提交不进行计分;
2.规则中只有符合第二个标准k = 1,其他的均k = 0.3。
3.附加标准提交加分不计入提交次数,仅作为附加分,也不受最高分的限制,请提交时注明为附加标准的提交。
赛事预告 :休赛一天后,2008-10-15中午12点正式开始第二阶段第一题比赛。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
上传的附件: