首页
学习
活动
专区
圈层
工具
发布

PHP无框架代码审计

这类文件通常会存放在common或function等文件夹中 1、入口文件index.php分析 首先检查/config/install.link文件是否存在,如果不存在就重定向到install.php...fetch_net_file_upload函数中,通过 url 获取文件名,存到 extention ,然后经过拼接取得上传路径,利用file_put_content函数上传文件,然后调用file_save...\等跨目录的字符过滤,是否配置了路径等 文件删除主要搜索unlink、rmdir函数,unlink 用于删除文件,rmdir用于删除文件夹 任意文件删除一 全局搜索unlink,在common.inc.php...中,调用file_delete删除文件,且参数可控 漏洞验证: 在根目录下创建一个aaa.txt,构造url删除 /index.php?...中找到一处调用 可以看到第四个参数是根目录路径加上$fie['name'] fie['name']来源于_FILES['weixin_verify_file']为用户可控,构造文件名即可执行命令,后续会检查后缀是否为

86310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    BUUCTF 刷题笔记——Basic 1

    图片 很遗憾,这里并没有这个文件,根据提示可以看出共有三级目录,那么我们可以逐一查看一下其他文件夹,可以使用 ../ 查找上一级目录,或直接使用 / 查找根目录。在 url 后加上 /?...一句话木马 将仅含一行代码的程序文件上传至目标网站,如 PHP 代码: php @eval($_POST["h-t-m"]);?> @ 表示其后代码即使出错也将不会报错。...由于只是 js 检查,为表示对检查的尊重,我们大可以嚣张一点,将文件名命名为 木马.php 。...在前面输入的一句话代码中, php @eval($_POST["h-t-m"]);?...> ,我们将通过 post 方法将内容传输至 h-t-m 变量中而实现入侵,而这个变量就是进入服务器所需要的连接密码。因此,输入变量名即可。

    3.2K40

    2021php最新composer的使用攻略

    Composer 默认情况下不是全局安装,而是基于指定的项目的某个目录中(例如 vendor)进行安装。 Composer 需要 PHP 5.3.2+ 以上版本,且需要开启 openssl。...安装过程中,会要求指定Php的安装目录,找到php.exe 安装完毕后,在cmd中输入,composer --version,检查是否安装成功 镜像源 默认的镜像源在国外,国内安装很慢,所以需要更换安装源...增加一级,autoload,指定命名空间名,以及对应的路径 { "require": { "monolog/monolog": "1.2.*" }, "autoload...": { "psr-4": {"nsname\\": "file_dir"} } } 上面的例子注册一个nsname的命名空间,到根目录(与 vendor 文件夹同级)的file_dir...,而不安装 require-dev 中定义的依赖 composer install --no-dev composer update - 从 composer.json 安装所有的最新扩展包和依赖; composer

    14610

    搭建自己的PHP框架心得(一)

    所以说,这次造轮子的目的不是为了造轮子而是为了在造轮子的过程中熟悉其工艺,总结轮子特点,更好的使用轮子。...1、作为MVC框架,一定要有一个唯一的入口文件来统领全局,所有的访问请求都会首先进入这个入口文件,如我框架根目录的index.php,在里面,我定义了基本文件夹路径,当前环境,并根据当前环境定义错误报告的级别...在一个PHP项目中,类特别多的时候,如果类名重复的话就会造成混乱,而且相同文件夹内也不能存在同名的文件,所以这时候命名空间和文件夹就搭档出场了。...而类的自动加载,我们知道的__autoload()魔术函数,它会在你实例化一个当前路径找不到的对象时自动调用,根据传入的类名,在函数体内加载对应的类文件。...public static function autoLoad($class) { //如果有的话,去除类最左侧的\ $class = ltrim($class, '\\'); //获取类的路径全名

    2.2K71

    备份方式和Linux基础

    例如,在 Win10系统桌面上新建一个 test文件夹,当再为桌面创建一个名为 Test的文件夹时, 系统会提示文件夹命名冲突; 而Linux 是一个非常严谨的操作系统,严格区分大小写。...2、Linux文件"扩展名" Windows依赖扩展名区分文件类型,如,".txt" 是文本文件、".exe" 是执行文件。...3)输入如下命令:两个文件在 Linux系统中是一样的,说明 Linux不是通过扩展名来区分文件类型。...c、程序文件:Shell 脚本一般用 ".sh" 扩展名结尾。 d、网页文件:网页文件一般使用 ".php" 等结尾,不过这是网页服务器的要求,而不是 Linux 的要求。...在windows中是文件的,在Linux下也是文件。在windows中不是文件的,在Linux系统中也是文件。

    1.7K21

    干货 | 渗透之网站Getshell最全总结

    后台数据库备份Getshell 后台数据库备份getshell,上传图片马并获取图片马路径,通过数据库备份修改后缀名,如有后缀名无法修改或路径无法修改限制可修改前端代码绕过,当所备份的数据库来源无法修改时...,b网站为php脚本,而a中限制了上传文件类型为asp的文件,此时可以上传php的脚本,来拿shell;也可以尝试脚本文件后缀名改为asa或者在后面直接加个.如xx.asp.来突破文件类型限制进行上传来...写入日志Getshell 获取日志路径,在访问过程中在url或者其他位置写入php eval($_POST[c]);?>等信息,使其日志记录此代码,然后访问日志路径,菜刀连接Getshell,如phpinfo();中能查看到error.log和access.log的路径。...上传正常头像抓包将图片文件内容删除,burp右键选择文件黏贴功能,将zip包内容复制到burp中的图片内容,放行后菜刀连接图片上传路径下的文件夹(zip压缩包名)下的Webshell 注入漏洞Getshell

    6.6K43

    在CentOS 7上安装Magento(Install Magento on CentOS 7 译文)

    为简单起见,我们将在我们的Web根目录中安装它,但如果您想将其放在其他地方(例如,您的Web根目录的子目录),则需要修改此设置。...安装Magento 下载Magento社区版 在本节中,我们将解释如何在您的Linode上获取Magento Community Edition(CE)软件。...实际上,一些支付供应商(如PayPal)需要SSL证书才能用于客户交易。 有关如何在商店中使用SSL证书的说明,请参阅有关获取商业签名SSL证书和使用Apache 证书的教程。...修改第一个字段Secure Base URL以使用HTTPS协议,而不是HTTP协议:https://example.com ?...如果您在Web根目录的子目录中安装了Magento,则需要在此处进行修改。

    12.7K50

    在CentOS 7上安装Magento

    为简单起见,我们将在我们的Web根目录中安装它,但如果您想将其放在其他地方(例如,您的Web根目录的子目录),则需要修改此设置。...安装Magento 下载Magento社区版 在本节中,我们将解释如何在您的Linode上获取Magento Community Edition(CE)软件。...选择以.tar.gz扩展名结尾的选项,然后点击下载。请务必记下保存下载文件的位置。 [00mu3qxx0l.png] 在此步骤中,您还可以下载带有可选样本数据的软件。...实际上,一些支付供应商(如PayPal)需要SSL证书才能用于客户交易。 有关如何在商店中使用SSL证书的说明,请参阅有关获取商业签名SSL证书和使用Apache 证书的教程。...修改第一个字段Secure Base URL以使用HTTPS协议,而不是HTTP协议:https://example.com [vjjhk1i044.png] 这假设您将/var/www/html/example.com

    17.5K60

    细思极恐.....那些你不经意间的Web敏感文件泄露....

    关于他们有一些讨论, 如为什么要用hg,为什么选hg而不是git等等, 我认为也是值得了解的....关键文件 与git类似, hg在初始化项目时, 会在项目的根目录下创建一个名为.hg的隐藏文件夹, 里面包含了代码和分支的修改记录和开发人员的相关信息....其中两个关键文件为:CVS/Root和CVS/Entries, 分别记录了项目的根信息和所有文件的结构 泄露内容 因为是纯客户端的工具, 所以只会泄露源代码 利用方法 下载CVS文件夹然后通过cvs命令获取源码信息..., 所以治本的方法还是不要将敏感信息放在web路径中....如果是批量测试, 则可以事先准备好 常见的配置文件路径, 如wordpress的/wp-config.php等, 组织成字典然后用脚本进行批量测试. 可以参考猪猪侠的字典.

    2.9K20

    Java开发环境系列:JDK安装及环境变量设置(windows)

    建议两个都安装在同一个java文件夹中的不同文件夹中。 注意:不能都安装在java文件夹的根目录下,jdk和jre安装在同一文件夹会弹出错误窗口。...变量名:JAVA_HOME 变量值:JDK安装目录,不是JRE的安装目录,注意:最后不要加分号";" 变量名:PATH (windows程序文件的目录) 变量值:%JAVA_HOME%\bin; 或 JDK...如何在原有环境变量值基础上添加新值? 答:%变量名% 取到原有环境变量的值。...PATH 作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。...我们需要把 jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好 PATH变量后,就可以在任何目录下执行javac

    2.2K30

    CTF实战14 任意文件上传漏洞

    只使用了黑名单校验的上传点 由于上传文件的合法性校验使用的是黑名单的方式判断上传文件后缀,因为有些黑名单不全,就存在被攻击者绕过导致的上传漏洞 要判断一个黑名单是否可以绕过,我们可以用试错法,如 上传一个现实中不存在的后缀名文件...大小写相互转换 如: asp->asP php->pHp etc. 3....的名字 然后同时也可以在该文件夹下上传其他文件或创建其他文件夹 3....这里是假设我们的上传路径就是网站的根目录,如果不是就自行改成其他目录 之后我们的php代码就会被Apache执行了 这个解析漏洞的一个好处就是文件上传后不会对文件名进行重命名 漏洞版本包含 apache...php文件名截包,并改为 webshell.jpg%00.php 绕过上传限制 之后 当服务器中设置了cgi.fix_pathinfo = 1的时候 php就会以'/'为分割符从开始<

    5.2K40

    CMS-CMS框架解析

    ->控制器调用服务->服务调用model->控制器获取数据->控制器包含HTML文件(这一步可以实现页面缓存)->正则匹配将HTML文件中的变量和表达式转换为PHP的语法(前端模板,如blade和smarty...本文只讨论第一种样式 三.将路由转到入口文件index.php 该入口文件一般放在服务器设定的项目根目录中的public文件下,通常是index.php。...35行定义匹配到的语言常量,可能是英文也可能是中文 38到46行定义手机常量 48-49行设置自定义目录,其实如果我写肯定不这么写,我可以在这里定义根目录为顶层文件夹的目录 58-60行实例化了容器对象...看看自动加载的写法 可以看出,这里其实很简单,将几个大文件夹中的路径的文件全部引入进来。...后面的参数中去除了后面的参数,并将其变成参数,然后去除了脚本文件大部分是index.php获取了不包含参数和脚本路径的纯路径,在这个纯路径的最后会加入一些如.HTML的标识,用以迷惑用户,以让其认为这是个静态文件

    6.7K10

    01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》

    本机环境:win10 集成环境:studyphp(方便学习使用Windows下集成环境) 数据库可视化操作软件:sqlyog 文章目录(更新中…) 01 thinkphp6的前期开发准备《ThinkPHP6...tp 输入完命令后将会自动下载安装: Succeed 后,打开文件夹,发现 tp 文件已下载: 二、开发规范(不理解不影响之后学习) 2.1 什么是PSR PSR 规范是 PHP Standard...Recommendations,是一种编写规范,而不是一种标准,通过规范的代码编写将会使代码清晰且简洁。...; 类文件使用首字母大写的驼峰命名法; 类目和文件名保持一致; 类文件名以命名空间定义,命名空间的路径和类库所在路径保持一致; 三、单应用、多应用模式 在默认情况下 tp6.0 是单应用模式,在开启多应用模式后目录结构会发生变化...五、使用 studyphp 设置网站根目录 在使用 studyphp 设置文件根目录即可对其进行访问,操作方式如下图中序号操作: 最后启动一键环境: 随后输入 localhost 进行访问即可

    87840

    yii2使用Migrations为整个数据库表创建迁移

    方法获取到表字段数据,然后我们循环字段,判断isPrimaryKey是否为1 且 autoIncrement是否不存在(因为有的表可能不需要自增而需要主键,这个循环判断就是为了干这件事),然后我们会发现.../migrations'; // 先删除该路径下已生成的所有文件 $Migrate->deleteFile($dirName); // 获取所有表名 开始循环获取表字段信息...$value, $info); } } } 我们先实例化模型文件,然后获取到存放迁移文件的路径,先将迁移路径下的所有迁移文件删除掉(避免重复),然后我们就使用:Yii::$app...->getDb()->getSchema()->getTableNames()获取所有的表名,接着就 foreach 循环所有的表,key为键值 value为表名,然后我们使用php的 exec 函数执行命令...(先进入到你的程序根目录,有yii.bat的那里) windows的DOC命令:/你的文件夹路径/yii timer(控制器名)/migrationdb(方法名)。 Linux命令:老子不会。

    2.8K31

    小柏实战学习Liunx(图文教程三十一)

    如果有之前的博客备份的话: 10.更换博客前台主题,找个免费的好看的主题: https://shaun.lanzouq.com/iVEq62ltqqqb 将下载到的压缩包解压到 /usr/themes/ 并且将文件夹名改为...admin文件夹,然后将解压出的Menu.php复制到/var/Widget/即可。...  删除安装文件   成功安装后删除install.php文件、install/文件夹。       ...修改admin文件夹名称   修改admin文件夹名称为你喜欢的名称,例如pipixia   修改配置文件以适配修改后的admin路径   修改config.inc.php   修改为以下代码,我就当修改为...我们同时屏蔽config.inc.php和.htaccess的访问。 屏蔽原理就是把要屏蔽的请求重定向到首页文件,首页文件会当成文章名来解析,没有同名文章就会返回404未找到。

    50500
    领券