网络攻防实战教程v20.docx
- 文档编号:5328082
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:36
- 大小:2.66MB
网络攻防实战教程v20.docx
《网络攻防实战教程v20.docx》由会员分享,可在线阅读,更多相关《网络攻防实战教程v20.docx(36页珍藏版)》请在冰豆网上搜索。
网络攻防实战教程v20
信息安全实战系列之
网络攻防实战教程
ActualCombatforNetworkAttackandDefensive
吉林中软吉大信息技术有限公司
一.技能题答案
找到网页中的秘密
技能点
1.使用编码转换工具解密编码信息。
2.根据html代码和JavaScript分析页面功能。
解题工具
解码工具
Ø汉字编码转换工具
网页调试工具
ØIE8F12
解题思路
本题要求输入正确的密码获取KEY。
在没有提示密码长度及密码内容的情况下,通过查看网页源代码的方式分析密码被提交的方式和匹配方式。
通过读取源代码可以找到一段被转化成编码的JavaScript语句,通过对编码的解密获取到正确的密码以及KEY。
解题需知
JavaScript
JavaScript可以用escape()将字符串进行编码,转换后的编码可以在所有计算机上被识别。
转换后的编码形式通常为“%XXX”。
html中的按钮
在这句html代码中,type=”button”说明定义了一个按钮,value=”提交”说明这个按钮在显示的时候名称为“提交”。
onclick=”PassConfirm()”说明当点击这个按钮的时候会执行一个动作,这个动作是调用PassConfirm()这个方法,PassConfirm()这个方法通常是用JavaScript语言编写的。
解题步骤
1.首先查看题目网页源代码,点击IE浏览器页面选项,选择查看源代码,如下图。
查看到的源代码中JavaScript代码的变量Words为编码。
为了查看网页提交密码的过程,因此需要对编码进行解密,需要解密的部分如下图。
2.对Words的值解密。
打开汉字编码转换工具,在输入区输入需要解密的信息,选择一种解密方式,会在输出框中获得解密后的信息。
3.分析解密后的JavaScript代码
根据线索查看PassConfirm()方法。
方法中if(x==""){alert('jlcssIST')这句话是对输入框中被提交的数据进行匹配,如果输入的密码为(后面有一个占位符)就会弹出密钥。
你会应聘成功吗
技能点
1.根据html代码和JavaScript分析页面功能。
解题工具
网页调试工具
ØIE8(F12)
解题思路
本题需要输入正确的账户和密码获取KEY。
没有用户名密码信息的提示,也无法查看网页源代码,因此我们需要寻找查看源代码的方法。
根据猜测网页可能采用了JavaScript方法使得无法查看源代码,通过禁用IE执行JavaScript的方法后可以查看到网页源代码。
对源代码进行分析后获得KEY。
解题需知
JavaScript
JavaScript中prompt()方法的功能是弹出消息对话框,消息对话框具有排他性,因此在点击消息对话框的按钮前,不能执行其他任何操作。
html中的按钮
在这句html代码中,type=”button”说明定义了一个按钮,value=”提交”说明这个按钮在显示的时候名称为“提交”。
onclick=”PassConfirm()”说明当点击这个按钮的时候会执行一个动作,这个动作是调用PassConfirm()这个方法,PassConfirm()这个方法通常是用JavaScript语言编写的。
解题步骤
1.查看网页源代码
打开页面后不能另存网页查看源代码(IE8下按F12也同样无效),通过url的地址可以知道访问的网页为html页面,JavaScript代码阻止了查看源代码的功能。
因此禁用浏览器的JavaScript功能。
2.禁用JavaScript
以IE8浏览器为例,打开浏览器后点击工具——Internet选项——安全——自定义级别,按照下图将相关选项禁用。
「注」完成题目后需要将这两项修改为启用。
3.查看网页源代码(IE8下按F12)
再次访问网页后可以看到页面,如下图。
此时可以查看网页的源代码了。
varmessage1="请输入您的用户名";
varun=prompt(message1,"");
varmessage="请输入密码";
varincmess="用户名或密码错误";
varpw=prompt(message,"");
alert(incmess);
window.open("error.html","_self")
根据上面这段代码可以看到一旦访问页面就会弹出输入账户密码的对话框。
但是不会对输入的内容进行匹配,而是直接跳转到error.html页面。
再看下面的代码中有“window.open("include.html","_self")”,这里面有另一个页面include.html。
直接访问http:
//220.2.1.10/hack/3/include.html获得KEY(网址需要按照实际情况来修改IP地址)。
找出凶手
技能点
1.应用专用工具识别文件格式,应用十六进制编辑器修改文件数据。
解题工具
编辑工具
ØWinHex/UltraEdit/EditPlus
图像处理
ØACDsee/PhotoShop
解题思路
首先下载文件,根据题目的提示信息,这个文件的后缀名应该是tga,使用相应的软件打开,发现无法显示图像,用十六进制编辑器Winhex打开,查看文件十六进制代码,发现文件头不对,将文件头修改为tga格式的相应文件头,打开图像,查看KEY。
解题需知
tga文件头格式
名称
偏移
长度
说明
图像信息字段长度
0
1
本字段是1字节无符号整型,指出图像信息字段(见本子表的后面)长度,其取值范围是0到255,当它为0时表示没有图像的信息字段。
颜色表类型
1
1
0表示没有颜色表,1表示颜色表存在。
由于本格式是无颜色表的,因此此项通常被忽略。
图像类型码
2
1
该字段总为2,这也是此类型为格式2的原因。
颜色表规格字段
颜色表首址
3
2
颜色表首的入口索引,整型(低位-高位)
如果颜色表字段为0,则忽略该字段
颜色表的长度
5
2
颜色表的表项总数,整型(低位-高位)
颜色表项位数
7
1
位数(bit),16代表16位 TGA,24代表24位TGA,32代表32位TGA
图像规格字段
图像X坐标起始位置
8
2
图像左下角X坐标的整型(低位-高位)值
图像Y坐标起始位置
10
2
图像左下角Y坐标的整型(低位-高位)值
图像宽度
12
2
以像素为单位,图像宽度的整型(低位-高位)
图像高度
14
2
以像素为单位,图像宽度的整型(低位-高位)
图像每像素存储占用位数
16
2
它的值为16,24或32 等等。
决定了该图像是TGA16,TGA24,TGA32等等。
图像描述符字节
17
1
bits3-0-每像素对应的属性位的位数;
对于TGA16,该值为0或1,对于TGA24,该值为0,对于TGA32,该值为8。
bit4-保留,必须为0
bit5-屏幕起始位置标志
0=原点在左下角
1=原点在左上角
对于truevision 图像必须为0
bits7-6-交叉数据存储标志
00=无交叉
01= 两路奇/偶交叉
10=四路交叉
11=保留
图像信息字段
18
可变
包含一个自由格式的,长度是图像由“图像信息字段指定。
它常常被忽略(即偏移0处值为0),注意其最大可以含有255个字符。
如果需要存储更多信息,可以放在图像数据之后。
颜色表数据
可变
可变
如果颜色表类型为0,则该域不存在,否则越过该域直接读取图像颜色表规格中描述了每项的字节数,为2,3,4之一。
图像数据
可变
可变
RGB颜色数据,存放顺序为:
BBBGGGRRR(AAA)
解题步骤
1.根据题目提示信息,确定目标文件为.tga类型文件(一种图像文件类型)。
2.下载文件解压缩,补充文件扩展名,文件全名为“key.tga”。
3.用ACDSee打开key.tga(ACDSee软件会反馈无法识别该文件格式)。
4.用Winhex(以十六进制方式)打开key.tga,浏览文件头,如下图所示。
5.修改上图红色区域数据为:
000102(具体涵义见解题需知)。
6.用ACDSee打开key.tga。
7.放大浏览该图片,注意图片中央区域显示内容,可获取到KEY。
最后的线索
技能点
1.通过编程来实现移动图片像素位置,达到恢复图片正确像素。
解题工具
开发工具
ØPython2.6以及Python图形库PIL-1.1.6.win32-py2.6
解题思路
观察图片信息,显示内容为高度为5000(宽度)×1(高度)的图像,图像中包含若干个间距相同的蓝色像素点和无数个无规律的黑色像素点,可以判断该现象是由于图片像素位置被改变而导致的。
恢复图片的正确像素及位置,是解决此题的关键。
如何得到正确的图片像素呢?
再进一步观察图片,图片中蓝色像素点分布均匀,因此猜测此种颜色的像素点是图片的边框,总计50个,初步判断原始图片宽度为100,高度为50,即像素为100×50。
通过python编程,实现对上述分析的验证。
解题需知
关于Python
Python是一种面向对象、直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言。
关于Python中的import等内置函数
「说明」关于Python库、模块功能、接口等详见“ModuleDocs”
import
功能描述:
导入外部模块。
解题步骤
1.观察图片信息
(1)右键点击图片属性,观察图片的宽度和高度值。
(2)使用“画图”打开该图片,观察存在规律。
蓝色像素点的出现具有一定的规律性,黑色像素点无规律,猜测黑色像素点体现的是图片隐藏信息的内容。
2.利用编程调整图片像素位置
(1)安装python开发环境,python2.6、PIL-1.1.6.win32-py2.6,(先安装Python2.6)全部执行默认安装。
(2)启动python2.6,如下图操作,或直接双击桌面快捷方式。
(3)新建窗口。
(4)在新建窗口中输入如下程序。
#导入图像库模块
importImage
#打开文件,注意根据fix.png的位实际存放位置,更改程序
im=Image.open("C:
\\fix.png")
#打印出原图片的属性
printim.format,im.size,im.mode
#重组新的像素
new=Image.new("RGBA",(100,50))
forxinrange(0,100):
foryinrange(0,49):
color=im.getpixel((x+(100*y),0))
new.putpixel((x,y),color)
#保存新图片,位置为c盘
new.save('C:
\\answer.png')
「注」文字是对程序的注释,输入程序时注意首行缩进的大小。
(5)F5保存程序,保存在默认路径下,名称自定义。
成功保存后,PythonShell提示如下信息。
3.观察调整后的图片
打开经过程序调整像素的图片,查看图片内容,得到隐藏信息KEY。
你会比黑客更强大么
技能点
1.通过应用html与JavaScript模拟人工自动填写表单。
解题工具
开发工具
Øjquery-1.4.2.min.js
解题思路
观察题目,要求的是猜测windows7开发团队的人数,由于人是个整数,且根据描述应该是大于等于1的数字,所以可以用手动的方式一次一次的试验,但是如果开发团队的人数比较大,猜对答案可能要花费非常长的时间,所以可以采用网页自动提交的方式进行。
网页自动提交可以通过html与javascript来实现。
解题需知
HTML
HTML指的是超文本标记语言(HyperTextMarkupLanguage)。
HTML不是一种编程语言,而是一种标记语言(markuplanguage)。
标记语言是一套标记标签(markuptag)。
HTML使用标记标签来描述网页。
JavaScript
JavaScript被设计用来向HTML页面添加交互行为。
JavaScript是一种脚本语言(脚本语言是一种轻量级的编程语言)。
JavaScript由数行可执行计算机代码组成。
JavaScript通常被直接嵌入HTML页面。
JavaScript是一种解释性语言(就是说,代码执行不进行预编译)。
所有的人无需购买许可证均可使用JavaScript。
解题步骤
1.首先新建一个TXT文档。
2.下载jquery-1.4.2.min.js,jquery-1.4.2.min.js是一个库,包含了各种封装好的方法,比如Ajax等。
3.将下面的html与JavaScript代码填入新建立的TXT中,然后将TXT的后缀名修改为html。
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
vari=0;
functions(){
$.ajax({
//服务器的地址
url:
'http:
//220.2.1.10/Hack/8/check.php?
'+Math.random(),
type:
'POST',
//向服务器提交参数solution;每次提交都增加1
data:
{solution:
''+i},
dataType:
'text',
//服务器返回的数据data
success:
function(data){
$("#tt").append(i+":
"+data+"
");
//参数i每次增加1
i++;
}
});
}
$(document).ready(function(){
//每隔0.1秒调用一次s()方法
setInterval("s()",100);
});
4.将下载的jquery-1.4.2.min.js与刚才完成的html网页放在同级目录中,然后打开html网页,稍等片刻就可以看到KEY。
恐怖分子的微型PC
技能点
1.应用反汇编工具修改可执行程序的代码进而改变程序走向,掌握逆向工程解题思路。
解题工具
调试器
ØOllyDBG
解题思路
crackeme是软件破解的常见题目。
学习软件破解破解入门的题目。
首先用OllyDBG打开软件,找到判断注册码是否正确的汇编代码位置,判断程序会判断注册码如果正确就会跳转到成功,如果注册码错误那么就会跳转到错误的返回值,如果将这里的条件判断修改为无条件跳转到正确的话,注册码的破解就完成了。
解题需知
关于汇编语言
汇编语言是面向机器的程序设计语言。
在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址,如此就增强了程序的可读性和编写难度,像这样符号化的程序设计语言就是汇编语言,使用汇编语言编写的程序,机器不能直接识别,还要由汇编程序或者叫汇编语言编译器转成机器指令。
关于反汇编
把目标代码转化为汇编代码的过程,也可以说把编程语言转换成汇编语言代码,低级转高级的意思,常用于软件破解、外挂技术,病毒分析、逆向工程、软件汉化等领域。
学习和理解反汇编语言对软件调试、漏洞分析、OS的内核原理及理解高级语言代码都有相当大的帮助。
OllyDBG
OllyDBG是一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring3级调试器,非常容易上手,已经替代SoftICE称为最流行的调试解密工具了。
解题步骤
1.反汇编
首先先运行一下crackme.exe随便输入一个值
我们发现软件的基本思路就是将输入的值A与真实值B进行比对根据对错给出提示。
首先我们用OD打开crackme.exe然后我们来到了程序的初始化函数这里
可以看到右侧的注释,这是OD为了方便使用者阅读而给出的高级语言注释,由此可以判断出此软件为C++语言编写,更可能是MFC的编码结构。
所以我们只要找到按钮的消息处理函数问题就迎刃而解了,接下来就需要耐心来排查代码了,因为一般程序的函数建栈是在程序入口函数之前的所以我们要向上排查(过程很枯燥)。
经过查找,在004015C9这个地方找到了这样一段明文,这段明文为crackme给出的提示信息。
所以我们可以猜测进行数值判断的命令很可能在这段代码的上下文中。
在00401536这里有一段明文,这个时候如果回头用这段明文去软件上尝试的话,已经是成功了。
不过本着软件破解的思想,还是要继续接分析下去,00401561~00401580这段注释结合汇编代码,TESTEAXEAX这句是做一个与运算,而接下来的00401582中的这个JNE很可能就是一切的关键。
00401582这段的内容是当TEST运算后,是否则跳转到004015C5,我们查看004015C5处的内容,刚好向下执行“Tryagain!
”。
00401582处为不相等则跳转,因此我们要改为相等时才跳转。
也就是将JNE修改成JE。
2.寻找关键代码
下面我们来进行修改。
双击00401582这一行,弹出一个修改对话框,如下图。
这里我们手动将JNE修改成JE。
然后点击Assemble按钮。
然后选择Debug->run启动程序。
再来测试一下我们之前输入的信息点击确定。
破解成功。
健忘的老师
技能点
1.应用base64编码解密网址。
解题工具
解码工具
Ø文本base64加密解密加强版V2.0
解题思路
打开网页,查看题目要求,题目会给出一段字符串,那么用这个字符串访问一下网页,不成功,那么这个应该是加密过的,按字符串的特征,这个非常像base64加密算法加密的。
使用base64加密算法解密此字符串就可以得到真正的网址。
解题需知
Base64编码
Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。
如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='。
为了保证所输出的编码为可读字符,Base64制定了一个编码表,以便进行统一转换。
编码表的大小为2^6=64,这也是Base64名称的由来。
解题步骤
1.首先根据字符串判断该字符串应为base64加密,用工具base64jm-v2.0,将字符串输入进去,解密即可,如下图。
2.点击解密就可以得到KEY。
神秘的51区
技能点
1.应用WinHex16查看、解析文件信息。
2.辨识FAT16文件系统引导扇区信息。
3.应用WinHex16分析JPG文件头。
4.应用WinHex16分析RAR压缩文件头。
5.了解JPG文件与RAR压缩文件捆绑技术。
解题工具
编辑工具
ØWinHex/UltraEdit/EditPlus
解题思路
对于一个陌生或不确定类型的文件,多数情况下从分析其文件信息开始,尤其是文件头格式。
通过修复、镜像、填充等手段还原文件原始信息,同时确定文件类型,而后使用专用工具对文件进行浏览。
将信息隐藏到图片中有多种手段,包括通过信息隐藏工具(如LSB、DCT等)或人为操作将信息隐写到图片中,能够做到隐藏信息前后的文件大小无变化。
另外,还有一种常用的方法就是文件捆绑,通过将RAR压缩文件追加合并到图片文件(成为一个文件),形成既含图片文件特征,又具备RAR压缩文件特征的混合文件,通过修改扩展名来定位其文件类型(本题目采用的是这种技术)。
解题需知
FAT16文件系统引导扇区信息
(1)偏移地址00H,长度3,内容:
EB3C90跳转指令。
(2)偏移地址03H,长度8,内容:
4D53444F53352E30为厂商标志和os版本号,这里是MSDOS5.0。
(3)偏移地址0BH,长度2,内容:
0002。
注意这里数据的布局,高地址放高字节,低地址放低字节(数据为小端格式组织),所以数据应该是0200,即512。
表示的意思是,该磁盘每个扇区有512个字节。
有的可能是1024、2048、4096。
(4)偏移地址0DH,长度1,内容:
01。
表示的意思是每个簇有1个扇区。
这个值不能为0,而且必须是2的整数次方,比如1、2、4、8、16、32、64、128。
但是这个值不能使每个簇超过32KB字节。
(5)偏移地址0EH,长度2,内容:
0800。
转换一下,就是0008,意思是保留区域中的保留扇区数为8个。
那么就可以知道下面的FAT1区的开始的地址就是:
0x08*0x200(每个扇区的字节数)=0x1000。
(6)偏移地址10H,长度1,内容:
02。
表示此卷中的FAT结构的份数为2,另外一个是备份的。
(7)偏移地址11H,长度2,内容:
0002。
转换一下,就是0200H,表示根目录项数(RootEntries)能够保存在该分区的根目录文件夹中的32个字节长的文件和文件夹名称项的总数。
在一个典型的硬盘上,本字段的值为512。
(8)偏移量地址13H,长度2,内容:
4DED。
转换一下就是ED4DH,即大约32MB的SD卡存储量。
表示小扇区数(SmallSector)。
该分区上的扇区数,表示为16位(<65536)。
对大于65536个扇区的分区来说,本字段的值为0,而使用大扇区数来取代它。
(9)偏移地址16H,长度2,内容:
EC00。
转换一下为00EC,表示每个FAT占用的扇区数。
那么每个扇区占用的字节数就是0x00EC*0x200=0x1D800。
根据启动区、FAT1、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 攻防 实战 教程 v20