web命令执行(web页面执行shell命令)
用 Flask 实现的在 Web 页面执行 shell 命令的小 Demo
1、项目结构
2、项目文件内容
3、使用方法
运行在 Python 2.7.x 环境下,依赖 ansible,flask
下面的IP根据你的情况配置,但要配置好ssh免密认证
测试 ansible 是否能使用 host.cfg 的 ip 正常运行
启动项目
比如运行在 192.168.1.254 这台机器上,
就用浏览器打开
常见WEB攻击之命令注入
即 Command Injection。是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的。
在Web应用中,有时候会用到一些命令执行的函数,如php中system、exec、shell_exec等,当对用户输入的命令没有进行限制或者过滤不严导致用户可以执行任意命令时,就会造成命令执行漏洞。
黑客将构造好的命令发送给web服务器,服务器根据拼接命令执行注入的命令,最后讲结果显示给黑客。
以DVWA为例,下面使用ping命令测试IP,正常输入一个IP或者域名会返回一个正常的返回结果。
当输入恶意构造的语句 netstat -an,会把后面的语句也给执行了:
执行结果:
PHP的常见命令执行函数:
system(),exec(),shell_exec(),passthru()
1、system()
system — 执行外部程序,并且显示输出
常规用法:
使用PHP执行:
php test1.php
exec — 执行一个外部程序
3、shell_exec()
shell_exec — 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。
4、passthru()
passthru() 函数与 exec() 函数类似,执行外部程序并且显示原始输出。
Windows:
用^转义
如果加上单引号会写不进去,如果加双引号会把双引号一起写进去,所以要用^转义
Linux:
linux下需要用来转义,不过很多php都默认开启gpc,可以先用16进制转换一句话再用xxd命令把16进制还原.
?php eval($_POST[pass]);
转换为16进制:
3c3f706870206576616c28245f504f53545b706173735d293b3e
由于我用的是Linux,所以使用payload写入一句话:
写入成功:
1、采用白名单,或使用正则表达式进行过滤。
2、不要让用户可以直接控制eval()、system、exec、shell_exec等函数的参数。
3、在进入执行命令函数和方法前,对变量进行过滤,对敏感字符进行转义。
excel 表格 在一指定的单元格执行另一个单元格的刷新web命令
假设A2单元格已经设置了数据有效性下拉选择列表,C、D列是材质和密度对应关系,当A2选择材质以后,B2自动填入密度;
1、在B2输入公式:=IFERROR(VLOOKUP(A2,C:D,2,0),"") 回车;
见图一
2、显示效果:
见图二
3、如在A2选择:铸铁;
见图三
B2会自动填入符合C、D列对应关系的密度
见图四
说明:公式中 iferror是为了防止A2出现空格时,显示错误而设的,可以不要,直接用公式:=VLOOKUP(A2,C:D,2,0)
web循环语句执行效果是什么
web循环语句是指在web开发过程中,用来让程序重复执行某一段代码的命令。它可以有效地减少代码量,提升程序的性能和效率,使得代码的执行更加方便快捷,而且也可以节省开发时间和资源。常见的web循环语句包括for循环、while循环和do-while循环等。
python怎么实现web页面敲入linux命令,传入到另一个服务器执行
这个不难,我说下原理,具体你自己实现。浏览器向web服务器提交要执行的linux命令,服务端调用os.system等系统交互的方法,去执行所提交的命令,然后获取执行后标准输出、标准错误,将这些标准输出、错误以response返回给浏览器。