平时做开发的时候大多都是在Mac系统下,开发环境用的是MAMP集成的,但是Mac系统原本就带有Apache的。...这种情况下回默认使用系统自带的PHP版本,最近由于项目需要用到PHP7.1的版本,在不升级系统版本的情况下实现切换到MAMP环境的PHP版本!...免去系统版本升级麻烦 1.先查出MAMP下面集成的PHP版本 cd /Applications/MAMP/bin/php ls -ls 2.编辑修改 .bash_profile 文件(没有.bash_profile...文件的情况下回自动创建) sudo vim ~/.bash_profile 在文件的最后输入以下信息,然后保存退出 PATH="/Applications/MAMP/bin/php/php7.1.1/...bin:$PATH" export PATH 红色的部分就是你要切换的php版本类型,我选择的是7.1的稳定版 (看项目需求选择) 3.执行 .bsah_profile脚本(很重要) source .
平时做开发的时候大多都是在Mac系统下,开发环境用的是MAMP集成的,但是Mac系统原本就带有Apache的。...这种情况下回默认使用系统自带的PHP版本,最近由于项目需要用到PHP7.1的版本,在不升级系统版本的情况下实现切换到MAMP环境的PHP版本!...免去系统版本升级麻烦 1.先查出MAMP下面集成的PHP版本 cd /Applications/MAMP/bin/php ls -ls 2.编辑修改 .bash_profile 文件(.../MAMP/bin/php/php7.1.1/bin:$PATH" export PATH 红色的部分就是你要切换的php版本类型,我选择的是7.1的稳定版 (看项目需求选择) 3.执行 .bsah_profile...不相信的话你可以打印看一下版本是不是已经切换了 输入命令:php -v 查看 成功切换7.1版本
---- 1.正确解题思路 作者的基本思路如下: 第一步,使用dirsearch扫描敏感目录 第二步,发现index.php.swp源码文件下载 第三步,将....简单来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。...内容并返回,构造的payload是重点。...php eval($_REQUEST['eastmount'])?> 输出结果如下图所示,可以看到flag值。其“eastmount”是我构造.htaccess文件中的代码。...第五步,我们在该题目提供的config.php文件中发现了数据库的配置信息。接着我想flag是否藏在数据库表中。 config.php文件如下: 在数据库中添加信息的root用户和密码。
介绍 在本教程中,我们将激活并学习如何使用Apache2 mod_rewrite模块管理URL重写。这个工具允许我们以更干净的方式重写URL,将人类可读的路径转换为代码友好的查询字符串。...第4步 - 设置文件 在本节中,我们将设置一个基本的URL重写,它将漂亮的URL转换为代码的实际路径。具体来说,我们将允许用户访问example.com/about。.../about/ example.com/contact 常见模式 在本节中,我们将展示一些常用的指令。...您的Web应用程序现在正在运行,并受受保护.htaccess文件的约束。最简单的例子如上所述。我们将在本节中探讨另外两个示例。...^(12\.34\.56\.789)$``.使用\反斜杠转义所有句点并使用取消IP地址!
此时,常用的的两个 .htaccess 指令如下: •SetHandler 指令 我们可以使用 SetHandler 指令强制将所有匹配的文件被 PHP 处理器处理并解析: # 将images.png...可以将 PHP 运行报错的记录写到指定文件中,因此我们可以通过 .htaccess 文件设定 error_log 选项来自定义错误文件的存储路径,并以此来写入Webshell: php_value error_log...•第一步:写入 .htaccess error_log 相关的配置,将 payload 写入目标文件 将上述内容进行url编码,然后构造 url 并执行: /index.php?...•第二步:访问 index.php 触发报错留下 error_log•第三步:写入 .htaccess 新的配置,将 include_path 选项设定为刚才生成的fl3g.php的目录,并配置解析的编码为...为了时我们写入的 .htaccess 文件生效,我们要采用 # 对脏字符进行注释,或使用反斜杠 \ 将换行符转义成普通字符。
之前说过.htaccess 文件的使用,htaccess 文件是 Apache 服务器中的一个配置文件,它负责相关目录下的网页配置。....htaccess 就可以实现的几个功能 反盗链 那些盗用了你的内容,还不愿意自己存储图片的网站是很常见的。...第一个是设置最大的上传文件大小,第二个是设置最大的 POST 请求大小,第三个 PHP 脚本最长的执行时间,最后一个是脚本解析上传文件的最长时间: php_value upload_max_filesize...20M php_value post_max_size 20M php_value max_execution_time 200 php_value max_input_time 200 压缩文件 你可以通过压缩文件来减少网络流量...Header set Cache-Control "max-age=2592000" 添加尾部的反斜杠 我并不确定,但是很多文章,很多人都说添加尾部反斜杠有益于 SEO: RewriteCond %{REQUEST_URI
,并注意字段名不要以下划线开头,例如think_user表和user_name字段,不建议使用驼峰和中文作为数据表及字段命名。...请理解并尽量遵循以上命名规范,可以减少在开发过程中出现不必要的错误。...build.php并移入app目录 命令行工具的选用(推荐使用git bash) 基本命令 php think list这个是比较重要的,可以查看目录所支持的所有命令 php think list php...可以简单的理解为,可以将一个动态类库变为一个静态类库(向外提供一个静态的访问入口)。 下面是一个示例,假如我们定义了一个app\common\Test类,里面有一个hello动态方法。 <?...hello,thinkphp 数据迁移 使用数据库迁移工具可以将数据库结构和数据很容易的在不同的数据库之间管理迁移。
如何将字符串中的子字符串替换为给定的字符串? strtr()函数是PHP中的内置函数,用于将字符串中的子字符串替换为给定的字符串。...该函数返回已转换的字符串;如果from和to参数的长度不同,则会被格式化为最短的长度;如果array参数包含一个空字符串的键名,则返回FALSE。 php strtr()函数怎么用?...规定要转换的字符串。 ● from:必需(除非使用数组)。规定要改变的字符(或子字符串)。 ● to:必需(除非使用数组)。规定要改变为的字符(或字符串)。...一个数组,其中的键名是原始字符,键值是目标字符。 返回值 返回已转换的字符串。...如果 from 和 to 参数的长度不同,则会被格式化为最短的长度;如果 array 参数包含一个空字符串("")的键名,则返回 FALSE。
site_url('wp-login.php', 'login'); 不要修改外,该文件内的字符wp-login.php均替换为wa-admin.php,注意完成修改后需要覆盖原文件并保存!...wordpress后台登陆地址修改方法之主题函数代码法 不想通过以上复杂的修改手段达到登陆地址调整的话,我们可以直接将下面的代码复制到wordpress当前主题的 functions.php 文件中:...比如将wp-login.php修改成wa-login.php,同时还要打开这个文件,将里面所有的wp-login.php替换成wa-login.php。...这里来个复杂字符串(数字英文横杠下划线组成) RewriteRule .*.php [F,L] RewriteCond %{QUERY_STRING} !...%{QUERY_STRING}& 与上面的那个密码相同 这个.htaccess实现了URL的重写,禁止访问wp-admin下的所有.php文件,访问/dawa 的话会直接替换成/wp-admin下的对应文件
,rm删除内容时,将目录的每一个条目逐个删除(unlink),需要循环重复操作很多次; rsync删除内容时,建立好新的空目录,替换掉老目录,基本没开销。.../front/index/parse/name/$1/age/$2 last; 如上配置中的\w是数字字母下划线的意思,\d是数字的意思 +是最少一个{1,} 1到无穷大{1,3} 这样是1-3位数。...另外,\w是数字字母下划线的意思,\d是数字的意思 +是最少一个{1,} 1到无穷大{1,3} 这样是1-3位数。... 检查httpd.conf中的AccessFileName参数,确认为.htaccess AccessFileName .htaccess 在网站根目录下建立.htaccess...答:.htaccess默认对所在目录下所有子目录生效,但是如果子目录中也放置了.htaccess文件,则该子目录下的访问规则以子目录中的.htaccess文件为准。
$file_name = trim($_FILES['upload_file']['name']); $file_name = deldot($file_name);//删除文件名末尾的点...少了代码 deldot(\file_name);//删除文件名末尾的点 bypass 查看源码还是黑名单没有对后缀名进行去.操作利用 Windows 特性会自动去掉后缀名中最后的.可在后缀名中加 ....$file_name = trim($_FILES['upload_file']['name']); $file_name = deldot($file_name);//删除文件名末尾的点...; } } 逻辑大致是识别上传文件的类型 并查看是否是'.asp','.aspx','.php','.jsp'中的一个,否则不允许上传,少了代码 $file_ext = str_ireplace...('::DATA', '', file_ext);//去除字符串 bypass NTFS 文件系统包括对备用数据流的支持,主要包括提供与 Macintosh 文件系统中的文件的兼容性。
第二步,找到对应代码并删除 onsubmit = “return checkFile()”。 此时成功上传,如下图所示。 服务器的文件夹也能看到该文件。...简单来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。...虽然提示中禁止了“.pHp”中间大写,但没有禁止末位的大写,所以这里使用“.phP”。注意,好的防御代码会获取后缀名并全部转换为小写,再定义黑白名单进行校验。...$file_name = deldot($file_name); //删除文件名末尾的点 接着上传一张图片“mm2.jpg”,通过BurpSuite抓包,我们将文件名“mm2.jpg”修改为“mm3....查看源代码,这里是将问题后缀名替换为空,也就是“php.php”会变成“php.”,但是这里只过滤一次。查看第8行代码,发现它把文件后缀名替换为空。
解题步骤 抓包修改上传文件后缀为.php3进行上传并访问。...靶机中得httpd.conf配置: Al lowOverride All 造成文件上传.htaccess解析得突破,从而导致webshell上传并执行。...解题步骤 准备1.htaccess内容为: AddType application/x- httpd-php .jpg 整台服务器将.jpg后缀得文件当作php 来解析。...$file_ ext;和pass-11分级将GET换为了POST,思路相同 这次的save_ path是通过post传进来的,在进行00截断时需要在hex中修改。...; } } 解题思路 程序通过imagecreatefromjpeg( )函数调用了PHP GD库(GD库,是php处理图形的扩展库),对图片进行了转换。 将一个正常显示的图片,.
$file_name = trim($_FILES['upload_file']['name']); $file_name = deldot($file_name);//删除文件名末尾的点...; } } 本题属于黑名单限制,从源代码中可以看出, 限制了.asp,.aspx,.php,.jsp文件 $deny_ext = array('.asp','.aspx','.php...$file_name = trim($_FILES['upload_file']['name']); $file_name = deldot($file_name);//删除文件名末尾的点...,然后去除文件末尾的点,然后将文件名全变为小写再去掉文件名后面的空格 这里我们就不能用大小写绕过的方式去绕过 在这里我们只需要避开上传就好,这里方式很多-> php3、php4等 ?...先上传.htaccess ? .htaccess上传成功后上传图片马 ? 菜刀链接就OK ?
(分布式配置文件)提供了针对目录改变配置的方法;特定的文档目录中放置一个包含一个或多个指令的文件,以作用于此目录及其所有子目录;(是Apache环境下的一种配置行为) 设置.htaccess将当前目录的所有文件以...; } } [分析] 这里把.htaccess也拉入了黑名单,细细的看代码发现少了之前源代码中的一行"大小写转写";代码缺陷瞬间暴露,将文件名进行大小写混淆即可。...“双写”的方式来做突破 [思路] 通过Burp将文件名字符串修改为.php. ....; } } [分析] 依旧是黑名单机制,这里发现一个关键的代码逻辑,符合黑名单的字符全部替换为空字符;故此无法在使用之前那些什么后缀名混淆的方法没有用了,因为只要有符合黑名单中的字符全部替换为空...[思路] burp拦截将文件名修改为双写.phphpp,交给代码进行校验,校验代码进行一次校验并替换敏感词为空字符,再上传。
保存并退出该文件,然后重新启动Apache以应用更改: sudo systemctl restart httpd 接下来,.htaccess在/var/www/htmlApache 的默认文档根目录中创建一个文件...如果从地址栏中删除.html并重新加载页面,则会收到404 Not Found错误。Apache只能通过其完整文件名访问组件,但我们可以使用重写规则对其进行更改。...例1A:简单的替换 我们将创建一个重写规则,执行简单的替换,简化长查询URL: RewriteRule ^shoes/women$ results.php?...该\反斜杠逃脱.点,否则,它们充当用来匹配任何字符的元字符。 该F标志禁止访问L,如果执行,则该标志表示这是最后运行的规则。...,但在.htaccess文件中设置限制是实现这些结果的最简单方法。
从数据包中可以看出,验证文件类型的参数有:Content-Type、Filename、Filedata。...解析漏洞) 4 借助系统特性突破扩展名验证,如:test.php_(在windows下下划线是空格,保存文件时下划线被吃掉剩下test.php) 5 双扩展名之间使用00截断,绕过验证上传恶意代码如:test.php...%00.jpg 6 借助.htaccess文件上传恶意代码并解析。...如:上传一个.htaccess文件,内容为AddTypeapplication/x-httpd-php .jpg,上传的jpg文件就可以当作php来解析 7 使用00截断,绕过后缀验证获取webshell...:.htaccess
xss 自定义错误文件写shell error_log 可以将 PHP 运行报错的记录写到指定文件中,因此我们可以通过 .htaccess 文件设定 error_log 选项来自定义错误文件的存储路径...php eval(+ACQAXw-POST+AFs-whoami+AF0)+ADs?+AD4- 绕过关键字过滤 绕过对关键字的过滤我们可以使用反斜杠 \ 加换行来实现。...模块进行进一步处理 S Skip 忽略之后的规则 E Env 设置环境变量 RewriteCond参数: 参数 含义 解释 -d 目录 将TestString视为一个路径名并测试它是否为一个存在的目录...-f 常规文件 将TestString视为一个路径名并测试它是否为一个存在的常规文件。 -s 非空的常规文件 将TestString视为一个路径名并测试它是否为一个存在的、尺寸大于0的常规文件。...-l 符号连接 将TestString视为一个路径名并测试它是否为一个存在的符号连接。 -x 可执行 将TestString视为一个路径名并测试它是否为一个存在的、具有可执行权限的文件。
、png、gif中的一个,否则不允许上传 bypass 1.修改前端不使用该checkfile函数 ?...; } } 逻辑大致是识别上传文件的类型 并查看是否是image/jpge、image/png、image/gif中的一个,否则不允许上传 $_FILES全局变量 $_FILES['myFile...; } } 逻辑大致是识别上传文件的类型 并查看是否是'.asp','.aspx','.php','.jsp'中的一个,否则不允许上传 bypass 尝试使用和php一样解析效果的后缀名,如php3...; } } 逻辑大致大致和上一关类似,只是增加了黑名单量,识别上传文件的类型 并查看是否是黑名单量中的一个,否则不允许上传,可见大小写都包括了,常见的一些后缀也包括了,通过查看资料发现.htaccess...; } } 逻辑大致大致和上一关类似,只是增加了.htaccess黑名单量,识别上传文件的类型 并查看是否是黑名单量中的一个,否则不允许上传,细看大小写过滤并不全,可以混合大小写进行利用。
PHP 表单验证 提示:在处理 PHP 表单时请重视安全性! 这些页面将展示如何安全地处理 PHP 表单。对 HTML 表单数据进行适当的验证对于防范黑客和垃圾邮件很重要!...关于 PHP 表单安全性的重要提示 $_SERVER[“PHP_SELF”] 变量能够被黑客利用! 如果您的页面使用了 PHP_SELF,用户能够输入下划线然后执行跨站点脚本(XSS)。...黑客能够把用户重定向到另一台服务器上的某个文件,该文件中的恶意代码能够更改全局变量或将表单提交到其他地址以保存用户数据,等等。 如果避免 $_SERVER[“PHP_SELF”] 被利用?...在用户提交该表单时,我们还要做两件事: (通过 PHP trim() 函数)去除用户输入数据中不必要的字符(多余的空格、制表符、换行) (通过 PHP stripslashes() 函数)删除用户输入数据中的反斜杠...如果未提交,则跳过验证并显示一个空白表单。 不过,在上面的例子中,所有输入字段都是可选的。即使用户未输入任何数据,脚本也能正常工作。 下一步是制作必填输入字段,并创建需要时使用的错误消息。
领取专属 10元无门槛券
手把手带您无忧上云