当前位置: 首页 > news >正文

网站开发属于软件开发吗手工小制作

网站开发属于软件开发吗,手工小制作,深圳北站网站建设,框架布局技术制作一个网站目录 CSV注入漏洞 1.CSV漏洞简介 2.漏洞原理 (1)公式执行 (2)DDE机制 (3)OS命令执行 3.漏洞防御 第08关 CSV注入 1.打开靶场 2.修改源码 3.注入命令 4.导出excel表 5.打开excel表 CSV注入漏洞…

目录

CSV注入漏洞

1.CSV漏洞简介

2.漏洞原理

(1)公式执行

(2)DDE机制

(3)OS命令执行

3.漏洞防御

第08关 CSV注入

1.打开靶场

2.修改源码

3.注入命令

4.导出excel表

5.打开excel表


CSV注入漏洞

1.CSV漏洞简介

CSV公式注入(CSV Injection)是一种会造成巨大影响的攻击向量。攻击包含向恶意的EXCEL公式中注入可以输出或以CSV文件读取的参数。当在Excel中打开CSV文件时,文件会从CSV描述转变为原始的Excel格式,包括Excel提供的所有动态功能。在这个过程中,CSV中的所有Excel公式都会执行,从而可能导致黑客利用此功能进行渗透,形成CSV漏洞

2.漏洞原理

(1)公式执行

当输入一个公式,会被Excel自动运算并执行。如下图执行公式=1+2+3

回车后这一行数据就会变为6

(2)DDE机制

而当你输入一个别的Excel本身不存在的功能时,Excel就会被微软的另一种机制:DDE机制调用。

DDE是Windows下进程间通信协议,是一种动态数据交换机制,使用DDE通讯需要两个Windows应用程序,其中一个作为服务器处理信息,另外一个作为客户机从服务器获得信息。DDE支持Microsoft Excel,LibreOffice和Apache OpenOffice。 Excel、Word、Rtf、Outlook都可以使用这种机制,根据外部应用的处理结果来更新内容。因此,如果我们制作包含DDE公式的CSV文件,那么在打开该文件时,Excel就会尝试执行外部应用

(3)OS命令执行

通过在CSV文件中构建DDE公式,可以调用系统cmd执行命令,从而达到执行操作系统命令的目的,形成命令执行漏洞

如下图所示,在单元格中输入1+cmd|’/C calc’!A0

1+cmd|'/C calc'!A0

回车后Excel会弹出一个框,提醒Excel需要启动另外一个程序(cmd)

点击是,Windows会弹出计算器窗口。

因此,利用这种漏洞危害,我们可以在用户的操作系统上执行添加用户、开启任意程序、操作注册表、反弹shell等命令。 

3.漏洞防御

1、确保单元格不以特殊字符(“+、-、@、=”)开头;
2、对单元格的内容进行特殊字符(“+、-、@、=”)过滤;
3、先对原始输入内容进行转义(双引号前多加一个双引号),然后在添加tab键和双引号防止注入;
4、禁止导出CSV、Excel格式;
5、导出为Excel格式前,利用代码把单元格的格式设置为文本(对CSV不生效)。 

第08关 CSV注入

1.打开靶场

初始打开效果如下所示

2.修改源码

这是因为源码有问题,需要修改源码csv_vuln.php,修改后如下所示

<?php$conn = mysqli_connect('localhost', 'root', 'root', 'webug');if ($conn) {$sql = "select * from data_crud";$res = $conn->query($sql);}if (isset($_POST['daochu'])){$headerArray = ['name','age','email'];$string = implode(",",$headerArray)."\n";//先做出表头while (list($id, $name, $age, $email, $deflag) = mysqli_fetch_row($res)){$data = [['name'=>urldecode($name),'age'=>urldecode($age),'email'=>urldecode($email)]];foreach ($data as $key => $value) {//把需要的字段一一对应起来,如果已经对应好 直接 $outArray = $value;$outArray['name'] = $value['name'];$outArray['age'] = $value['age'];$outArray['email'] = $value['email'];$string .= implode(",",$outArray)."\n"; //用英文逗号分开 }}@$filename = date('Ymd').'.csv'; //设置文件名header("Content-type:text/csv");header("Content-Disposition:attachment;filename=".$filename);header('Cache-Control:must-revalidate,post-check=0,pre-check=0');header('Expires:0');header('Pragma:public');exit(mb_convert_encoding($string, "GBK", "UTF-8"));}
?><?php
require_once "../../common/common.php";
if (!isset($_SESSION['user'])) {header("Location:../login.php");
}
?>
<!doctype html>
<html><head><meta charset="utf-8"><title></title>
</head>
<style>body{font-family: Arial, Helvetica, sans-serif;}table{border-collapse: collapse;width: 50%;text-align: center;}td,th{border:1px solid #ccc; padding: 2px 5px;}button{padding: 5px;}div {line-height: 3;}
</style>
<body>
<?php$i_name =  urlencode($_POST[name]);$i_age =  urlencode($_POST[age]);$i_email =  urlencode($_POST[email]);if ($dbConnect) {if ($i_name != null && $i_age != null && $i_email != null){$sql = "INSERT INTO data_crud(name,age,email) VALUES ('$i_name','$i_age','$i_email')";$res = $dbConnect->query($sql);}}if ($dbConnect) {$sql = "select * from data_crud";$res = $dbConnect->query($sql);}
?><table id="table"><tr><th>Name</th><th>Age</th><th>Email</th></tr><?phpif ($res) {while (list($id, $name, $age, $email, $deflag) = mysqli_fetch_row($res)){echo '<tr>';echo '<input type="text" hidden="hidden" name="id[]" value="'.$id.'">';echo '<td><div contenteditable="true">'.urldecode($name).'</div></td>';echo '<td><div contenteditable="true">'.urldecode($age).'</div></td>';echo  '<td><div contenteditable="true">'.urldecode($email).'</div></td>';echo '</tr>';}}?></table><form action="#" method="post"><input name="daochu" type="submit" value="导出"/></form><br><h2>添加新用户信息</h2>
<form action="#" method="post"><table id="table"><tr><td>Name</td><td>Age</td><td>Email</td></tr><tr><td><input name="name" type="text" size="20"/></td><td><input name="age" type="text" size="20"/></td><td><input name="email" type="text" size="20"/></td></tr></table><div><input name="submit" type="submit" value="确认添加"/></form></div>
</body>
<script src="../../../aa/html/table-to-excel.js"></script><script>var tableToExcel = new TableToExcel();document.getElementById('button').onclick = function () {tableToExcel.render("table");};</script>
</html>

修改源码后,打开页面如下所示

3.注入命令

在添加用户信息处,任选一项name处,添加1+cmd|'/C calc'!A0这个csv注入命令,其他两项甜味18和ljn,接下来点击确认添加

添加后如下所示

这个时候点击导出,将excel表导出,很明显此时导出的表格中会包含此csv注入命令。

4.导出excel表

点击导出后效果如下,此时导出成功会提示是否打开,选择打开

5.打开excel表

打开后,当点击=1+cmd|'/C calc'!A0项数据时,提示如下

这个时候如果点击是的话,如下所示通关excel表的csv注入将计算器启动,渗透成功

http://www.dtcms.com/a/539215.html

相关文章:

  • 网站导航条用什么做厦门做医院网站设计的公司
  • 网站做的好的tkd狠狠做狠狠干免费网站
  • h1z1注册网站手机网站底部固定菜单
  • 高新公司网站建设电话dedecms做网站全教程
  • 株洲网站关键词优化wordpress 添加点赞
  • 西安做网站哪里好wordpress 上传ssl证书
  • 免费建站资源花都移动网站建设
  • 廊坊网站建设公司哪个好企业公众号运营方案
  • 学习前端的网站.net网站方案
  • 网站查询域名入口百度seo点击工具
  • 网站布局设计教程wordpress技术类博客
  • 网站建设 数据库东城网站建设哪家好
  • 拼客多网站多少钱可以做常用的网站建设程序有哪些
  • 国外做旅游攻略的网站网站建设安装部署必须买吗
  • 贵州省兴义市建设局网站做网站的公司cnfg
  • 湖北省市政工程建设网站58和搜房那个网站做房产好
  • ps怎么做网站导航内嵌式建设局网站作用
  • 机场建设投资公司官方网站建网站备案
  • 濮阳做网站推广在线做网站怎么做
  • 怎么免费做网站汕头百度seo公司
  • 儿童编程培训机构关键词优化快排
  • 做金融量化的网站网站模版如何建
  • 建设网站最快多长时间工程建设
  • 做网站需要会什么 知乎菏泽的给公司做网站的
  • 做网站要用什么计算机语言网站提示框代码
  • 建站快车的功能介绍最好看的视频免费下载
  • 国外超酷网站手机设计软件官方下载
  • 网站开发怎么实现用户一对一发文字图片加工平台纳米所
  • 购买深圳网站定制开发培训课程网站建设
  • 网站建设免费空间注册导航中国建设官网首页