当前位置: 首页 > wzjs >正文

jsp网站开发介绍铜仁市住房和城乡建设厅网站

jsp网站开发介绍,铜仁市住房和城乡建设厅网站,陕西电商网站建设,合肥seo优化公司在上一部分中,我们研究了如何使用 AFL++ 对简单的物联网二进制文件进行模糊测试。这些程序接受来自文件的输入,并且易于模糊测试。 在本文中,我们将研究套接字二进制文件。使用套接字进行网络通信的模糊测试二进制文件与使用基于文件 I/O 的模糊测试二进制文件不同。Vanill…

在上一部分中,我们研究了如何使用 AFL++ 对简单的物联网二进制文件进行模糊测试。这些程序接受来自文件的输入,并且易于模糊测试。

在本文中,我们将研究套接字二进制文件。使用套接字进行网络通信的模糊测试二进制文件与使用基于文件 I/O 的模糊测试二进制文件不同。Vanilla AFL 和 AFL++ 不支持对套接字二进制文件进行模糊测试,尽管AFLNet和AFLNW等项目使用 AFL 的修改版本进行模糊测试。不过,本文我们将了解如何使用普通的 AFL++ 来模糊测试网络程序。httpd此处的二进制文件/usr/sbin/httpd是固件的 Web 服务器,可以作为模糊测试的候选对象。

httpd我们可以像下面这样启动sudo。需要使用 Sudo 才能绑定到 80 端口。

img

请注意,qemu 是从www/目录内部启动的,因为这是 Web 资源(html、css、js 文件)所在的位置。虽然它显示了绑定错误,但运行后netstat可以确认它httpd确实在监听 80 端口。

img

我们可以打开http://127.0.0.1来交叉检查Web界面是否可以访问。

img

还可以使用 访问 Web 界面curl

img

使用拦截代理(例如 Burp Suite),我们可以查看正在发送的实际 HTTP 请求。尝试使用凭据登录仪表板admin:123456将导致 POST 请求,如下所示。

img

在上图中,我们通过附加*-p 8080*到 qemu 命令行在端口 8080(而不是 80)上运行 Web 服务器。

从这里开始,我们的想法是使用模糊器以微妙的方式修改这个基本请求,从而使 Web 服务器崩溃。

最简单的方法是通过网络发送实际请求。然而,这会很慢。更聪明且推荐的方法是让 Web 服务器从文件中读取 HTTP 请求数据。我们将分别讨论这两种方法。

使用 Radamsa 进行简单模糊测试

Radamsa不是模糊测试器。它是一个测试用例生成器,可以读取文件并以微妙的方式对其进行修改。如何使用修改后的输出取决于我们。在这里,我们将文件的输出发送到正在运行的 Web 服务器。

# fuzz-radamsa.py
import socket
import pyradamsabase_login_request = open("base-login-request.txt", "rb").read()rad = pyradamsa.Radamsa()
i = j = 0while True:# Create a modified request based on the base requestfuzzed_request = rad.fuzz(base_login_request)sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 1 second timeoutsock.settimeout(1)sock.connect(("127.0.0.1", 8080))j += 1print(f"[+] Request {j} - ", end="")sock.sendall(fuzzed_request)try:sock.recv(50000)print("OK")except Exception as ex:i += 1open(f"interesting/{i}.txt", "wb").write(fuzzed_request)print(f" {ex} -> saved to {i}.txt")sock.close()

上述代码使用 Radamsa 根据基础登录请求生成修改后的请求数据。然后,这些数据通过套接字发送到运行在 8080 端口的 Web 服务器。如果服务器在 1 秒内没有响应,则输入将保存到目标目录中的文件中。

我们可以按照所示运行模糊测试器。

img

请求 3 在响应时超时,相应的输入被保存到1.txt 文件中。需要注意的是,超时并不等同于崩溃。如果服务器在请求 3 时崩溃,后续请求将无法成功。这种模糊测试效率极低、速度慢且容易出错,并且经常会导致误报。

使用 AFL++ 进行模糊测试

如前所述,要使用 AFL 进行模糊测试,程序必须接受来自文件的输入。我们没有httpd的源代码,无法根据我们的目的进行修改。因此,我们只能采取二进制级别的修改,例如修补汇编指令和LD_PRELOAD技巧。使用后者,我们可以覆盖网络函数,libc使其接受来自文件的输入。GitHub上的desockmulti项目可以用于此目的。

在演示如何使用*desockmulti 之前,*我们需要进行一些修改。httpd二进制文件目前使用该函数 fork 到后台daemon。我们不希望在模糊测试过程中出现这种 fork 行为。

img

我们需要重写daemon它,使其返回 0,而不是真正地进行分叉。这可以通过使用 LD_PRELOAD 或修改汇编指令来实现。

我们需要做的另一个修改是让httpd只处理一个请求(不像典型的 Web 服务器那样无限期地处理请求),然后退出。这样我们就能知道是哪个请求(如果有的话)导致了 Web 服务器崩溃。

要关闭套接字

http://www.dtcms.com/wzjs/577155.html

相关文章:

  • 石家庄网站排名软件外链生成工具
  • 怎样把自己做的网页放在网站里益阳建设厅网站
  • 购买网站空间域名上海雍熙网站建设
  • 常德网站公司建设营销型网站模板
  • 四川省建设局网站山东网站建设公司
  • 北京市建设厅网站网站建设营销推广实训总结
  • 湘潭网站建设公司有哪些企业邮箱怎么注册开通
  • 配置 tomcat 做网站网站建设报价选兴田德润
  • 电脑版商城网站建设泉州网站建设技术支持
  • 代做毕业设计网站 道路桥梁晴天影视
  • 济宁做企业网站品牌推广策略分析
  • 美容平台网站建设电脑版网站建设
  • 苏州市建设局招标网站首页网络工程干什么的
  • 阜阳h5网站建设哪个网站好
  • 注册公司网站的费用wordpress 新手指南
  • 哪个网站能查是否做股东怎么做网站凡科
  • 中山模板建站公司十大手游平台app排行榜
  • 腾讯广告建站工具镇江企力信息有限公司
  • html网站制作上传照片的网站赚钱
  • 公司在线网站制作系统网站首页图片素材
  • 网站规划与设计课程设计网站定位有哪些
  • 哪里的网站建设浏览网站内下载文件
  • 餐饮公司加盟网站建设东莞网站建设什么价格便宜
  • 电商网站前端开发施工企业的期间费用主要包括哪些
  • 多大的服务器可以做视频网站服装公司网站模版
  • 网站程序是什么合肥市城乡建设局网站首页
  • 广东省级建设主管部门网站音乐影视网站建设方案
  • 南昌网站建设方案推广wordpress换成中文
  • 免费制作一个企业网站负责做网站的叫什么公司
  • 网站建设内容策略展位设计