该漏洞允许远程攻击者通过 urn 执行任意操作系统命令:到 /htdocs/cgibin
中 ssdpcgi()
中的 M-SEARCH 方法,因为 REMOTE_PORT 处理不当。urn: service/device
的值使用 strstr 函数进行检查,该函数允许攻击者连接由 shell 元字符分隔的任意命令。
D-Link DIR-859 1.05 和 1.06B01 Beta01 设备
严重
在 kali 中下载 FirmAE
运行仿真固件
这个固件是千镜杯赛题,iot 部分下载得到 DIR.zip,解压后得到 DIR859Ax_FW106b01_beta01.bin
用 FirmAE 将固件运行起来。
用binwalk提取文件系统
网上已有该漏洞poc,可直接利用。
poc
因为是未授权漏洞,所以可以使用poc直接打
ssdpcgi()
中发现了远程执行代码漏洞,供应商已经创建了一个修补程序来修复该漏洞。使用HTTP_ST为攻击向量。cgbin
中的ssdpcgi_main
函数。urn:
,以达到其他条件而不执行返回。device
或service
中的一个。这样,我们已经可以验证漏洞的存在,因为strstr()
函数允许连接命令。lxmldbc_system()
。查看堆栈
查看lxmldbc_system()
函数
发现这些字符串未过滤便直接传给了lxmldbc_system
函数并作为参数带入。
因此我们可以控制这些值或将其他值连接到现有值,例如REMOTE_PORT=13;ls
和 SERVER_ID=1;ls
,则这些值使用 vsnprintf() 存储在缓冲区中,以格式化最终命令。
返回后,格式化的命令将存储在记录 s0=buffer
所指向的缓冲区中,该缓冲区将是系统 (s0) 函数的参数。转储(内存)也与结构一样显示。当注入的命令被以字符串的格式引用时。我们便得到了触发了命令注入。
这样,我们只要构造包头为
IP="127.0.0.1"
PORT="1337"
METHOD=”M-SEARCH”
URI="/"
HTTP_ST="urn:device:1;{cmd}"
REMOTE_PORT="13"
SERVER_ID="1"
即可任意命令执行。
升级固件至1.06B01 Beta01以上。
一、背景描述最近在研究didi的booster框架,应用到项目中,然后通过执行 assemble task 来构建一个优化过的应用包,构建完成后,在 build/reports/ 目录下会生成相应的报告。生成的报告文件中,包含了部分dot文件,如下所示打开该x.dot文件,是一堆如下面的文本,看不懂digraph "com.amap.api.col.sl3.x" { grap...
枚举进程ID以及线程ID,如果只需要PID以及TID的信息, 可以直接枚举线程即可.线程ID的结构体包含PID view plaincopy to clipboardprint?HANDLE m_hProcessSnap = NULL; HANDLE m_hThreadSnap = NULL; HANDLE m_hProcess = NULL;
起因呢又是有个需求,也是自己觉得好看,很多app都有下拉选择框,就想着实现下(主要是时间空闲,如果时间少,项目急,就找现成的),先看图片:直接上代码:xml: <com.yinp.proapp.module.work.view.DownSelectDialogView android:id="@+id/dsd_dialog" android:layout_width="match_parent" android:layout_height
【普通表格-非隔行显色】approach1 &lt;script type="text/javascript"&gt; window.onload = function () { //#-----非隔行显色---需要css辅助------------------------------------------- funct...
一、OpenSG中的基本数学类型1、基本数据类型(Datatypes)为了开发跨平台的程序,OpenSG定义自己的基本数据类型1、整型[U]intN: N = {8,16,32,64} U : unsigned 无符号整型2、浮点型 RealN N= {32,64,128}二、OpenGL中的结构类型1、向量(数组)1、向量
一文搞定ArrayList、LinkedList、HashMap、HashSet -----源码解读之ArrayList一文搞定ArrayList、LinkedList、HashMap、HashSet -----源码解读之LinkedList一文搞定ArrayList、LinkedList、HashMap、HashSet -----源码解读之HashMap一文搞定ArrayList、LinkedList、HashMap、HashSet -----源码解读之HashSet public class L
layui时间选择器如何控制时间范围详细参考该篇文章(复制下方地址到浏览器上访问)复制该urll到浏览器地址栏,回车访问=> http://www.shagua.wiki/project/3?p=97复制该urll到浏览器地址栏,回车访问=> http://www.shagua.wiki/project/3?p=97复制该urll到浏览器地址栏,回车访问=> http://www.shagua.wiki/project/3?p=97个人感觉总结挺详细,很方便,大多代.
一、表单在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型。 例如: application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。 multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分,这个一般文件上传时用。 t...
解决:找不到资源文件: 系统会根据分辨率来选择加载不同drawable下文件夹的资源,如果只在一个文件下放了资源文件,不同的分辨率设备的会报错。 ...
E-R图的注意点与画法 1 文件系统阶段的数据管理有些什么缺陷?试举例说明。答:文件系统有三个缺陷: (1)数据冗余性(redundancy)。由于文件之间缺乏联系,造成每个应用程序都有对应的文件,有可能同样的数据在多个文件中重复存储。 (2)数据不一致性(inconsistency)。这往往是由数据冗余造成的,在进行更新操作时,稍不谨慎,就可能使同样的数据在不同的文件中不...
处理less文件我们创建一个src/less/a.less文件@a:red;#div1{ color: @a; ul{ li{ list-style: none; height:30px; line-height: 30px; border-bottom
1.xxxx\build\make\core\main.mkendif # !user_variantifeq (true,$(strip $(enable_target_debugging))) # Target is more debuggable and adbd is on by default ADDITIONAL_DEFAULT_PROPERTIES += ro.debu...