首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

TCP,HTTP原始套接字疑义

2012-12-15 
TCP,HTTP原始套接字疑问?本帖最后由 VisualEleven 于 2012-10-08 09:41:00 编辑1、TCP连接需要设计到ack跟s

TCP,HTTP原始套接字疑问?
本帖最后由 VisualEleven 于 2012-10-08 09:41:00 编辑 1、TCP连接需要设计到ack跟seq,如果我使用原始套接字,填入的是一个非本地的源IP地址,那么我该怎么知道服务器返回的seq和ack呢?如果不知道的话,那么就TCP无法正常建立,无法欺骗到服务器了。
2、如果上面的问题解决了,那么我使用这种办法修改源IP地址,是否可以刷某些网站的访问记录?因为源IP改变了,那么就相当于一个新的访问者。此办法是否可行呢?
[解决办法]
要靠运气,猜seq,是二班的难度

要刷某些网站的访问记录,还是掏点银子,买些肉鸡干活
[解决办法]
关键是ISN算法问题
[解决办法]
你不能使用假的源IP,这是rule,必须遵守。

违反rule就是犯罪。
[解决办法]

引用:
关键是ISN算法问题



1)  第1步:客户端向服务器发送一个同步数据包请求建立连接,该数据包中,初始序列号(ISN)是客户端随机产生的一个值,确认号是0;

2)  第2步:服务器收到这个同步请求数据包后,会对客户端进行一个同步确认。这个数据包中,序列号(ISN)是服务器随机产生的一个值,确认号是客户端的初始序列号+1;

3)  第3步:客户端收到这个同步确认数据包后,再对服务器进行一个确认。该数据包中,序列号是上一个同步请求数据包中的确认号值,确认号是服务器的初始序列号+1。



关键是第二步,获取不到服务器随机生成的ISN值,啥事都干不了的呢。
[解决办法]
在这个帖子上有答案,不能用raw socket发送TCP数据,这是协议栈处理的.
http://topic.csdn.net/u/20120926/09/afb2d58d-a89f-4981-95de-b84f0684cee6.html
===================
在Windows 7、Windows Vista、Windows XP带有Service Pack 2或3上,使用原始套接口时有下面两个限制:
(1)不能发送TCP数据,创建协议类型为IPPROTO_TCP的原始套接口,调用bind或sendto函数时会失败,错误码为WSAEINVAL;
(2)协议类型为IPPROTO_UDP的原始套接口,输出UDP数据报的源IP地址必须是本机网络接口的地址,如果源IP地址不是本机的,调用sendto时会失败。
===================
[解决办法]
seq 和 ack 是有规律的
 但问题时 ,如果你是通信的第三方 ,你如何知道 第一方和第二方只讲的seq 和ack 
但如果被你知道 seq和ack,说不定你就可以进行rst攻击了
[解决办法]
引用:
在这个帖子上有答案,不能用raw socket发送TCP数据,这是协议栈处理的.
http://topic.csdn.net/u/20120926/09/afb2d58d-a89f-4981-95de-b84f0684cee6.html
===================
在Windows 7、Windows Vista、Windows XP带有Service Pack 2或3上,使用……


我用winpcap实现应该没问题吧?就是通信第三方无法获知seq跟ack

[解决办法]
wincap是链路层的,没有限制,可以实现.但你需要自己解析IP,TCP首部和数据.
[解决办法]
引用:
wincap是链路层的,没有限制,可以实现.但你需要自己解析IP,TCP首部和数据.


这些报文构造都没有问题,我最关键的是要怎么要获取服务器返回到虚假源地址的seq。

热点排行