首页 > 编程语言 > 详细

Python2中input()函数存在的漏洞及与raw_input()函数的区别

时间:2021-05-10 00:15:42      阅读:20      评论:0      收藏:0      [点我收藏+]

Python2中input()函数存在的漏洞及与raw_input()函数的区别

水一篇博客,参考博客:https://blog.51cto.com/u_12332766/2299894

似乎是去年国赛pwn第一题的考点,从操作上来讲利用这个漏洞非常容易

input()函数产生漏洞的原因

此函数会将stdin输入的内容当做python代码去执行(就像执行计算式一样,将其看做python代码,通过计算返回结果)。如下图:

技术分享图片

如果在python中调用系统命令,则可以getshell,如下图:

技术分享图片

原文中也举了一例,使用的命令是:

__import__(‘os‘).system(‘cat /home/small/flag‘)

去年国赛使用的命令是:

__import__(‘os‘).system(‘cat /home/ctf/flag‘)

input()函数与raw_input()函数的区别

1、 input()函数,能够自动的识别出输入的类型(str,int,fload)
技术分享图片
raw_input()函数,完全默认为str字符串类型
技术分享图片
2、 input()函数如果接收的是数学计算式,会自动执行得到结果(漏洞产生的原因)
raw_input()函数则会将输入的以字符串形式显示
例:
技术分享图片
输入3+2的字符串,input()函数处理后,得到5;
而raw_input()函数则不会出现这种问题
技术分享图片

Python2中input()函数存在的漏洞及与raw_input()函数的区别

原文:https://www.cnblogs.com/p0lar1s/p/14748732.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!