JS原型对象
一、什么是原型 原型是Javascript中的继承的基础,JavaScript的继承就是基于原型的继承。 JavaScript 常被描述为一种基于原型的语言 (prototype-based language)——每个对象拥有一个原型对象,对象以其原型为模板、从原型继承方法和属性。原型对象也可能拥有原型,并从中继承方法和属性,一层一层、以此类推。这种关系常被称为原型链 (prototype chain),它解释了为何一个对象会拥有定义在其他对象中的属性和方法。 准确地说,这些属性和方法定义在Object的构造器函数(constructor functions)之上的prototype属性上,而非对象实例本身。 在传统的 OOP 中,首先定义“类”,此后创建对象实例时,类中定义的所有属性和方法都被复制到实例中。在 JavaScript 中并不如此复制——而是在对象实例和它的构造器之间建立一个链接(它是__proto__属性,是从构造函数的prototype属性派生的),之后通过上溯原型链,在构造器中找到这些属性和方法。 注意:...
一个公司的面试题目-靶场
投简历后,公司下发的靶场 要求60小时内做完(不是我投的简历),简单记录一下过程 扫一遍端口和目录,目录发现admin目录,抓包会看到xml形式传递数据,看看能不能xxe. 经过简单的测试发现可以盲打xxe,而且根据服务器接受的信息来看,靶场是java的.php协议不能用,无法将数据编码传输,所以http传输不能用.用ftp传输即可 这里用ftp://ip/data 来访问ftp服务器其实是没有真正链接上的,所以正常的ftp服务器是不行的.自己搭建一个来接收数据 先搭建一个ftp服务器 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263class FTPServer(SocketServer.BaseRequestHandler): def handle(self): """ FTP Java handler which can...
Linux查找PDF内容
pdfgrep -R 'a pattern to search recursively from path' /some/path find /path -name '*.pdf' -exec sh -c 'pdftotext "{}" - | grep --with-filename --label="{}" --color "your pattern"' \; “ - ”是将pdftotext输出到stdout而不是文件的必要条件。pdftotext和grep选项将文件名放在grep的输出中。可选的pdfgrep标志很好,告诉grep使用终端上的颜色输出。 (在Ubuntu中,pdftotext由包grep或pdfgrep提供。) https://www.itranslater.com/qa/details/2119607760756147200
巧用LD_PRELOAD突破disable_functions
https://www.freebuf.com/articles/web/192052.html 通常来说,导致 webshell 不能执行命令的原因大概有三类:一是 php.ini 中用 disable_functions 指示器禁用了 system()、exec() 等等这类命令执行的相关函数;二是 web 进程运行在 rbash 这类受限 shell 环境中;三是 WAF 拦劫。若是一则无法执行任何命令,若是二、三则可以执行少量命令。从当前现象来看,很可能由 disable_functions 所致。为验证,我利用前面的 RCE 漏洞执行 phpinfo(),确认的确如此: 有四种绕过 disable_functions 的手法:第一种,攻击后端组件,寻找存在命令注入的、web 应用常用的后端组件,如,ImageMagick 的魔图漏洞、bash 的破壳漏洞;第二种,寻找未禁用的漏网函数,常见的执行命令的函数有 system()、exec()、shell_exec()、passthru(),偏僻的 ...
LD_PRELOAD
一、LD_PRELOAD是什么 LD_PRELOAD是Linux系统的一个环境变量,它可以影响程序的运行时的链接(Runtime linker),它允许你定义在程序运行前优先加载的动态链接库。这个功能主要就是用来有选择性的载入不同动态链接库中的相同函数。通过这个环境变量,我们可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖正常的函数库。一方面,我们可以以此功能来使用自己的或是更好的函数(无需别人的源码),而另一方面,我们也可以以向别人的程序注入程序,从而达到特定的目的。 二、程序调用流图 LA_PRELOAD替换前 LA_PRELOAD替换后 三、演示程序代码 主程序 1234567891011121314151617// myverifypasswd.c#include <stdio.h>#include <string.h>#include "mystrcmp.h" void main(int argc,char **argv) { char passwd[] =...
攻防世界
smart 模板注入 mail LD_PRELOAD 页面下方写有Smarty字样,所以可能存在模板注入漏洞,经过测试漏洞点在xff处,如下写入webshell 发现open_basedir被限制为/var/www/html和/tmp目录,而disable_funcitions如下: 但是mail和putenv没有被禁用,于是使用LD_PRELOAD来进行突破,C语言代码如下: 123456789101112131415161718192021222324252627#define _GNU_SOURCE#include <stdlib.h>#include <stdio.h>#include <string.h>extern char** environ;__attribute__ ((__constructor__)) void preload (void){ // get command line options and arg const char* cmdline =...
补天-杭州恒业网络信息有限公司
https://www.qgyyzs.net/zs/find.asp?xuanze=1 https://www.qgyyzs.net/business/registerinfo2.asp 验证码一段时间重复使用 时效性 首先用admin修改返回值获得验证码,然后修改用户名为testtest后没修改验证码竟然能通过 ??? 发验证码 没和用户信息进行绑定 0x0001 0x0800 0x06 0x04 0x0001 23:45:AB:4F:67:CD 125.45.23.12 AA:BB:A2:4F:67:CD 125.11.78.10
任意用户密码重置10种姿势
验证码不失效 验证码直接返回 验证码未绑定用户 修改接受的手机或邮箱 本地验证绕过 跳过验证步骤 未校验用户字段的值 修改密码处id可替换 Cookie值的替换 修改信息时替换字段
XDCTF2015
0x01 filemanager 0x01 分析 上传有黑名单,无法直接传php,在rename.php中存在这二次注入问题 12result = $db->query("select * from `file` where `filename`='{$req['oldname']}'"); $re = $db->query("update `file` set `filename`='{$req['newname']}', `oldname`='{$result['filename']}' where...
GIT对象模型
GIT对象模型 SHA 所有用来表示项目历史信息的文件,是通过一个40个字符的(40-digit)“对象名”来索引的,对象名看起来像这样: 16ff87c4664981e4397625791c8ea3bbb5f2279a3 你会在Git里到处看到这种“40个字符”字符串。每一个“对象名”都是对“对象”内容做SHA1哈希计算得来的,(SHA1是一种密码学的哈希算法)。这样就意味着两个不同内容的对象不可能有相同的“对象名”。 这样做会有几个好处: Git只要比较对象名,就可以很快的判断两个对象是否相同。 因为在每个仓库(repository)的“对象名”的计算方法都完全一样,如果同样的内容存在两个不同的仓库中,就会存在相同的“对象名”下。 Git还可以通过检查对象内容的SHA1的哈希值和“对象名”是否相同,来判断对象内容是否正确。 对象 每个对象(object) 包括三个部分:类型,大小和内容。大小就是指内容的大小,内容取决于对象的类型,有四种类型的对象:“blob”、“tree”、 “commit”...


