首页 -> 安全研究
安全研究
绿盟月刊
绿盟安全月刊->第12期->技术专题
作者:小四 (scz@nsfocus.com)
主页:http://www.nsfocus.com
日期:2000-08-15
这次以构造DNS报文为例继续介绍libnet库编程。
./linuxkiller -o 44 -y 53 -s 192.168.10.1
ping bbs.tsinghua.edu.cn后抓取如下报文:
[ udp ] 192.168.10.1 [ 1476 ] -> 192.168.0.2 [ 53 ]
udpHeadLen = 8 udpDataLen = 37
byteArray [ 37 bytes ] ---->
00000000 42 83 01 00 00 01 00 00-00 00 00 00 03 62 62 73 B?..........bbs
00000010 08 74 73 69 6E 67 68 75-61 03 65 64 75 02 63 6E .tsinghua.edu.cn
00000020 00 00 01 00 01 .....
42 83 id 标识符
01 00 param 参数 正向解析请求报文,允许递归解析
00 01 qtcount 问题数
00 00 ancount 回答数
00 00 aucount 管理机构数
00 00 adcount 其他信息数
03 62 62 73 bbs 长度域为03
08 74 73 69 6E 67 68 75 61 tsinghua 长度域为08
03 65 64 75 edu 长度域为03
02 63 6E cn 长度域为02
00 长度域为0,表示结束
00 01
00 01
这是一个相当标准的DNS查询报文,不理解的话可以翻看RFC。构造一些边界情形的
DNS报文,如果DNS SERVER没有处理边界情形,结果未知。
./linuxkiller -o 44 -x 53 -s 192.168.0.2
ping bbs.tsinghua.edu.cn后抓取如下报文:
[ udp ] 192.168.0.2 [ 53 ] -> 192.168.10.1 [ 1476 ]
udpHeadLen = 8 udpDataLen = 165
byteArray [ 165 bytes ] ---->
00000000 30 8F 81 80 00 01 00 02-00 02 00 02 03 62 62 73 0弫
版权所有,未经许可,不得转载