发表日期: 2021-04-30 10:47:09 浏览次数:73
长垣网站优化【长垣开通400电话】长垣网站搭建、长垣微信公众号推文外包、长垣开通京东拼多多设计、长垣淘宝装修
长垣市,河南省辖县级市,新乡市代管, [1] 位于豫东北地区,介于东经114°29'—114°59'、北纬34°59'—35°23'之间,总面积1051平方千米。 [2] 截至2020年6月,长垣市下辖5个街道、11镇、2乡, [3] 总人口88.18万人(2019年)。 [4] 市政府驻蒲西街道人民路368号。 [1]
前221年,秦改首邑为长垣县。2019年8月,河南省撤销长垣县,设立县级长垣市。 [1] 属暖温带大陆性季风型气候。 [2] 长济高速、大庆—广州高速公路、济东高速公路、新菏铁路、省道308线、213线穿境而过。
长垣市是全国文明城市 [5] 、国家园林县城 [6] 、国家新型城镇化综合试点地区 [7] 、全国科普示范区 [8] 、节水型社会建设达标县 [9] 、国家农产品质量安全县 [10] 、全国农村创新创业典型县 [11] 、革命文物保护利用片区分县。 [12]
ftpserver的fuzzing测试
格式解析
1.1 FTP协议简介
FTP采用双连接来进行文件的传输:控制连接用于服务器和客户端之间命令的交互以及响应,而数据连接则用于文件数据的传输。服务端打开用于FTP控制连接的TCP端口21(标准),等待FTP客户端的连接。当客户端需要登陆FTP服务器时,主动打开本地TCP端口21,与服务端建立连接(控制连接)。该连接始终等待客户和服务器之间的通信,将命令从客户端传递到服务器,并传回服务器的应答。每当需要文件传输时,就创建一个数据连接。
命令和应答在客户和服务器的控制连接上以ASCII码形式传送。以下为常用的FTP命令:
FTP应答是ASCII码的3位数字,并跟有报文选项:
125 数据连接已经打开;传输开始。
200 就绪命令。
214 帮助报文(面向用户)。
331 用户名就绪,要求输入口令。
425 不能打开数据连接。
452 错写文件。
500 语法错误(未认可的命令)。
501 语法错误(无效参数)。
502 未实现的MODE(方式命令)类型。
1.2 socketsniff抓包分析
启动ftpserver.exe后开启socketsnifff,并选定ftpserver进程,开启监听:
在主机上使用命令ftp 192.168.18.144连接ftpserver,在连接时,ftpserver会收到两个数据包,这个信息可用于构建连接数据包:
接下来发送命令,因为fuzzing操作时会反复发送命令,所以选取的命令不应对服务器或本机造成改动,pwd或dir属于较好命令。
发现dir命令发送后,服务端打开了新的数据连接端口用于传输列表内容,所以选取pwd最为方便,且在数据包中直接使用XPWD作为命令行。
2 Pit编写
2.1 DataModel
需要编写“发送用户名——发送密码——发送执行命令”,而且ftp是交互式的,但对于服务端的回答,本测试中无需考虑。
2.2 StateModel
FTP是一个连贯的交互过程,所以是output和input的交替。
2.3 Agent
同样规定好监视器路径和命令行即可。
2.4 Test
最后是测试环节,这里有一个不同,为了使我们的xml具有通用性,这里的Host和Port并不是固定的,而是以参数形式提供。同时变异策略采用Sequential,及peach将按顺序对每个元素使用其所有可用的mutators进行变异。
3 运行测试ftpserver.exe
使用命令“peach -DHOST=192.168.18.144 -DPORT=21 ./samples/ftp1.xml Test”
可以在log文件夹下找到测试出的较多触发漏洞情形:
选取其中一个打开,查看记录,发现eip被覆盖了,确实有漏洞
再去查看此时对应的输入
可以猜测是输入过长导致覆盖了EIP,导致的漏洞点。
4 编写POC
利用pwntools编写脚本尝试攻击
在win7中打开ftpserver.exe,在kali中攻击
在win7中显示ftpserver.exe停止工作,确认确实触发了漏洞。
用ollydbg分析也可以发现确实有漏洞点
5 漏洞点分析
进行调试:
单步调试时,在这一句之前EIP显示正常,而此句命令为ADD ESP,100,然后RETN
但显然此时栈里全是A,ESP+100后到达AAAA区域
此时再retn,会返回到AAAA中,报错
在这个大函数外面是00402DE0函数(因为到这里都没有报错)
用ida查看更清楚
V8只有0xfc即252,测试一下这个填充长度是否正确
再进行一步即到“abcd”处,可知长度正确。
6 编写EXP
可以看到他会覆盖后续栈帧,如果可以让函数执行栈顶,则可以让他执行我们的函数,所以找到JMP ESP的位置,用这个命令位置作为跳板,在ftpserver.exe板块中没有此操作,可以使用操作ALT+E来搜索其余板块,最终在ntdll模块中找到适配指令,用作jmpesp,地址是77A23B61,如果使用pwntool的p32可以自动调整大小端,如果直接输入,要小端输入。
单步执行调试,发现确实可以让其跳转到JMP上:
跳到了JMP上:
只要让栈顶是我的指令即可,以防万一,使用一些NOP雪橇,下方红框为指令区,使用的是弹框指令来测试漏洞效果。
要找到这个弹框函数,可以右击“查找->所有模块中名称”,就可以找到弹框函数MessageBoxA的地址,用来作为shellcode的编写地址。
弹框内容作为参数压栈:
所以EXP如下:
测试效果如下:
如果要看细节弹框位置,可以单步调试如下:
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: https://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 昌平殡葬| 朝阳殡葬|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878