水一篇博客,参考博客:https://blog.51cto.com/u_12332766/2299894
似乎是去年国赛pwn第一题的考点,从操作上来讲利用这个漏洞非常容易
此函数会将stdin输入的内容当做python代码去执行(就像执行计算式一样,将其看做python代码,通过计算返回结果)。如下图:
如果在python中调用系统命令,则可以getshell,如下图:
原文中也举了一例,使用的命令是:
__import__(‘os‘).system(‘cat /home/small/flag‘)
去年国赛使用的命令是:
__import__(‘os‘).system(‘cat /home/ctf/flag‘)
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