- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
看雪辞旧迎新exploit me 挑战赛 B 题 答题卷
基本分,共70分
得分点 分值描述 实际得分 漏洞定位 请介绍自己定位漏洞的思路与方法,以及所使用的软件或工具,如自己独立开发工具请注名,20分 漏洞描述及危害分析 通过逆向和调试,分析给出PE文件中的漏洞原理 。给出能够想到的利用此漏洞的所有方法(可以只实现其中一种或几种),给出攻击场景和攻击步骤的描述。15分 shellcode 请描述shellcode的功能及其中所使用的相关技术,10分 exploit截图 shellcode运行成功时的屏幕截图,10分 稳定性与通用性论证 介绍自己exploit代码中各个关键点的解决方案,从稳定性,通用性两方面进行对exploit进行论证和评价,10分 exploit代码运行 提交的exploit将在XP SP2虚拟机中试运行,用于检验exploit的通用性与稳定性。如在验证环境下能够通过,得5分
(本项得分可能存在一定随机性,评委会拥有最终裁决权)
加分
加分点 分值描述 实得加分 分析速度 加分 本题前五名提交者将获得5分加分。提交时间按照比赛过程中最后一次编辑修改的时间计算。 shellcode 原创加分 shellcode如果是自己独立开发完成,请附上详细的开发文档,并描述其中关键问题的解决方法,根据质量给予最高5分的加分。若A,B两题使用同样的shellcode,不重复加分。 分析报告文字质量 根据分析报告的行文质量,思路,层次,叙述方式等,发现特别优秀的给出1~3分的加分 整个过程中使用的其他创新性技术 请在分析报告中明确指出,此项加分不定
注意:比赛结束前,严禁在提交版面以外以任何形式讨论赛题,否则立刻取消资格。
提交者看雪ID:nop
职业:(学生、程序员、安全专家、黑客技术爱好者、其他?)
IT民工
漏洞定位:
1. 先注册测试的activex控件:
2. 打开Comraider
4. 然后选”Launch in Olly”,在ollydbg中继续分析漏洞.
漏洞描述及危害分析:
接上 :-)
在od中输入at oleaut32.DispCallFunc,定位到DispCallFunc函数LoadPage()方法.
然后,启动IDA Pro,分析exploit_me_B.dll,因为我们已经知道导致溢出的是LoadPage方法的第一个参数,所以我们着重跟踪第一个参数的数据流.
最终我们来到这里,紫色标注的部分,函数体内部如下图所示:
如图所示,注释的那段代码是strcpy的inline版本,str_src是由用户提供的, str_dst是栈内临时变量,其大小为256字节,所以只要用户提供(256+4)字节长度的字符串即可导致溢出,溢出buffer可以如下构造:
如下图C伪代码所示,分配的堆为固定的516字节,但是两个strcpy(inline)都没有检查用户输入的str_URL和str_filename长度,直接复制入堆中导致后续发生溢出.
因此这个方法两个参数超长都可以导致溢出.
2. GetRemoteFileTime(filename)
继续看c伪代码,堆分配的还是516字节,但是对用户输入的str_filename_依然没做长度检查,直接复制入栈导致后续的溢出.
3. Sub LoadSifPage (
ByVal URL As String ,
ByVal x As Long ,
ByVal y As Long ,
ByVal Zoom As Single ,
ByVal PageNum As Long
)
看流程图,URL字符串导致溢出的原因还是sub_10015AD0和LoadPage的那个原因一样,不再赘述.
4. Sub Print (
ByVal URL As String ,
ByVal PageNum As Long ,
ByVal b2in1 As Long ,
ByVal isdoubleside As Long ,
ByVal Zoom As Long
)
还是看伪代码,-_-,str_URL_被复制到大小为300字节的堆中,但是没检测用户输入的长度,导致堆溢出,从而导致后续的虚函数调用得到控制.
5. Sub SetUserAuth (
ByVal UserName As String ,
ByVal Password As String
)
Sub_1001B360是存在问题的函数,看代码,这个是一个类的成员函数,将str_UserName__和str_Password__复制到类实力的数据成员中.可
您可能关注的文档
最近下载
- 物业管理区域内房屋日常管理与维修养护方案.docx
- 新改版教科版三年级上册科学全册知识点(超全).doc
- 2030荆霄鹏《楷书入门基础教程》-结构.pdf
- 青海省1000MW风电场35kV集电线路杆塔结构施工设计图册.pdf
- 人教版音乐二年级上册《理发师》(课件).pptx
- 2023年上海市各区初三语文二模试题汇编之文言文译文汇总.docx
- 材料与诊疗项目关系对照库2013.12.27.xls
- 人教版八年级上册英语单词词性转换词形转换.docx
- IPCEIAIPCJEDECJ-STD-002E-2017元器件引子、焊、接柱和导可焊(中文版).pdf
- 普通高中学校办学水平督导评估自查报告.pdf
文档评论(0)