各种编程技术
子版块
-
72文章73主题
-
22文章23主题
-
16文章17主题
-
23文章26主题
- String常用方法
-
由
侠客756,
-
17文章19主题
-
13文章18主题
1,773个主题在此版块
-
很简单的弹窗 http://192.168.31.177/xssgame/level1.php?name=<script>alert(1)</script> 过滤了>、< http://192.168.31.177/xssgame/level2.php?keyword=" oninput='alert(1)'//&submit=‘搜索’ 过滤了>、<、' 用单引号替换了双引号 http://192.168.31.177/xssgame/level3.php?keyword=' oninput=alert(1) //&submit=搜索 过滤了>、<、" http://192.168.31.177/xssgame/level4.php?keyword=" onm ouseover=alert(1)//&submit=搜索 script替换成scr_ipt、on事件替换成了on_事件 利用伪协议 <a href='javascript:alert(1)'>来执行弹框 http://192.168.31.177/xssgame/level5.php?keyword="><a href='javascript:alert(1)'> //&submit=搜索 script替换成scr_ipt、on事件替换成了on_事件、href替换成了hr_ef…
HACK1949的最后回复, -
- 0 篇回复
- 917 次查看
php curl 发送请求失败问题 前提:运行在命令行模式中(没有超时设置) 多次调用curl ,可能出现发送请求失败的问题, 原因可以是curl连接复用,使用的是缓存池中的建立。 解决方法:设置curl 参数, curl_setopt($ch, CURLOPT_FORBID_REUSE, 1); curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1); 参考链接:https://www.php.net/manual/zh/function.curl-setopt.php
HACK1949的最后回复, -
- 0 篇回复
- 917 次查看
RabbitMq简介 1.1消息队列中间件简介 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性[架构] 使用较多的消息队列有 ActiveMQ(安全),RabbitMQ,ZeroMQ,Kafka(大数据),MetaMQ,RocketMQ 以下介绍消息队列在实际应用中常用的使用场景:异步处理,应用解耦,流量削锋和消息通讯四个场景 1.2什么是RabbitMQ RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。 AMQP :Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。 RabbitMQ 最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。具体特点包括: 1.可靠性(Reliability) RabbitMQ 使用一些机制来保证可靠性,如持久化、传输确认、发布确认。2.灵活的路由(Flexible Routing) 在消息进入队列之前,通过 Exchange 来路由消息的。对于典型的路由功能,RabbitMQ已经提供了一些内置的 Exchange 来实现。针对更复杂的路由功能,可以将多个Exchange 绑定在一起,也通过插件机制实现自己的 Exchange 。 2.消息集群(Clustering) 多个 RabbitMQ 服务器可以组成一个集群,形成…
HACK1949的最后回复, -
- 0 篇回复
- 918 次查看
一、运行镜像 docker run -d -p 80:80 --privileged=true --name httpd --link mysql5.7 -v C:\docker\www:/var/www/html -v C:\docker\apache\conf:/usr/local/apache2/conf -v C:\docker\php7.2\conf:/usr/local/etc/php/conf.d --restart=always php:7.2-apache 二、配置站点 <VirtualHost *:80> ServerName localhost DocumentRoot /var/www/html <Directory /var/www/html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> RewriteEngine on RewriteCond %{REQUEST_METHOD} ^TRACE RewriteRule .* - [F] RewriteRule !(^/static|\.(gif|swf|exe|png|jpg|js|css)$) /index.php [L] ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG…
HACK1949的最后回复, -
web——变量1 启动场景,发现又是一串php代码 flag In the variable ! <?php //提示flag在变量里 error_reporting(0);//关闭错误显示 include "flag1.php";//页面包含 flag1.php highlight_file(_file_);//页面进行语法高亮显示 if(isset($_GET['args'])){//判断有没有使用get传参 $args = $_GET['args']; if(!preg_match("/^\w+$/",$args)){//正则表达式匹配函数 die("args error!");//输出args error!并退出当前脚本 } eval("var_dump($$args);");//var_dump()是输出变量的相关信息,eval()是把字符串当作php语言执行 } ?> 在这道题目里代码还是比较容易读懂的,解题的关键是要知道一个知识点 $GLOBALS可以表示这个脚本中的所有变量 所以这道题里可以get传参,/?args=GLOBALS 即可得到flag
HACK1949的最后回复, -
- 0 篇回复
- 94 次查看
本教程仅适用Windows Servier IIS网站服务器。 我的博客使用IIS搭建,相比Linux,相关的教程格外少。因此让以后的小伙伴也能马上解决问题,分享此方法。 首先需要下载php对应版本的imagick 扩展:https://pecl.php.net/package/imagick 这里我选择版本较新的3.4.4 stable稳定版,我的PHP版是7.4.10 下载完成后将压缩包解压到你的服务器上,并将路径添加到系统环境变量中。注意路径中不要带有中文、空格、除下划线外的标点符号,确保路径正确。 复制解压的imagick根目录中的 php_imagick.dll 粘贴到PHP配置环境下的扩展目录 ext 文件夹下,将根目录中其余文件复制粘贴到php根目录下。 最后php.ini配置文件中添加 extension=php_imagick.dll 重启IIS即可生效。 使用php –ri imagick查看扩展对应的imagick的软件版本,注意如果不安装对应版本会产生未知错误。 我这里显示的是ImageMagick 7.0.7-11 Q16 x64 2017-11-23 对应版本下载地址:http://ftp.icm.edu.pl/packages/ImageMagick/binaries/ImageMagick-7.0.7-11-Q16-x64-dll.exe 网上虽然能找到到安装程序,但是多数是收费的。 magick安装完成后重启服务器使其生效。 参考文章: https://…
HACK1949的最后回复, -
- 0 篇回复
- 94 次查看
最新在做支付宝支付,对应的代码做一个记录。 支付宝支付最早用的叫【及时到账】现在叫【电脑网站支付】,文档参考: https://opendocs.alipay.com/open/270/106291?ref=api https://opendocs.alipay.com/open/203/105910 参考文档: https://www.cnblogs.com/camg/p/12793708.html 未完待续。。 打完收工!
HACK1949的最后回复, -
1. show_source(filename,return) #show_source() 函数对文件进行语法高亮显示。输出或返回包含在 filename 中的代码的语法高亮版本 2. empty() #函数用于检查一个变量是否为空 3. trim(string,charlist) #trim() 函数移除字符串两侧的空白字符或其他预定义字符。 charlist 可选。规定从字符串中删除哪些字符。如果省略该参数,则移除下列所有字符: "\0" - NULL "\t" - 制表符 "\n" - 换行 "\x0B" - 垂直制表符 "\r" - 回车 " " - 空格 4. stripslashes() #stripslashes() 函数删除由 addslashes() 函数添加的反斜杠 5. addslashes() #addslashes() 函数返回在预定义的字符前添加反斜杠的字符串。 …
HACK1949的最后回复, -
- 0 篇回复
- 80 次查看
mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。 MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 Mysql是开源的,所以你不需要支付额外的费用。 Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。MySQL使用标准的SQL数据语言形式。 Mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言。 MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。
HACK1949的最后回复, -
- 0 篇回复
- 91 次查看
在使用laravel框架的时候,在做网站迁移的时候,该框架的缓存非常严重,如何清理呢? 1、清除应用程序缓存 php artisan cache:clear 2、清理路由缓存 php artisan route:cache 3、清除配置缓存 php artisan config:cache 4、清除视图缓存 php artisan view:clear 常见适用场景: 1、修改了 env 文件里的数据库配置,未生效,需要清除【配置缓存】
HACK1949的最后回复, -
- 0 篇回复
- 94 次查看
1、问题 $list = [ ['id'=>1, 'name'=>'不知火舞', 'location'=>'中单'], ['id'=>2, 'name'=>'橘右京', 'location'=>'打野'], ['id'=>3, 'name'=>'马可波罗', 'location'=>'ADC'], ]; foreach ($list as &$item){ $item['class'] = '刺客'; } $list2 = []; foreach ($list as $item){ $list2[] = $item; } var_dump($list2); /* --$list2 array:3 [ 0 => array:4 ["id" => 1, "name" => "不知火舞", "location" => "中单", "class" => "刺客"] 1 => array:4 ["id" => 2, "name" => "橘右京", "location" => "打野", "class" => "刺客"] 2 => array:4 ["id" => 2, "name" => "橘右京", "location" => "打野", "class" => "刺客"] ] */ 2、原因 原来是因为在遍历时使用引用,当第二次遍…
HACK1949的最后回复, -
- 0 篇回复
- 95 次查看
注:笔者已启用WP Githuber MD插件使用Markdown语法进行文章编辑,启用的主题为generatepress。 1、进入你的宝塔面板首页 点击文件选项: 2、分别找到以下几个文件进行修改 2.1、header.php <!-- 图片放大 --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/[email protected]/dist/jquery.fancybox.min.css" /> 2.2、footer.php <!-- 图片放大 --> <script src="https://cdn.jsdelivr.net/gh/fancyapps/[email protected]/dist/jquery.fancybox.min.js"></script> 2.3、functions.php /**图片灯箱自动给图片加链接**/ add_filter('the_content', 'fancybox'); function fancybox($content){ $pattern = array("/<img(.*?)src=('|\")([^>]*).(bmp|gif|jpeg|jpg|png|swf)('|\")(.*?)>/i","/<a(.*?)href=('|\")([^>]*).(bmp|gif|jpeg|jpg|…
HACK1949的最后回复, -
事由:新购阿里云安装了docker,在docker上部署了宝塔,宝塔面板切换php版本后运行php脚本报错 打开对应目录/tmp/php-cgi-74.sock检查,切换时并没有生成改文件,于是手动创建。 编辑 创建后依然报错,重启/etc/init.d/php-fpm-74 start 提示“php-fpm: error while loading shared libraries: libonig.so.5: cannot open shared object file: No such file or directory failed” 默认只能重启安装宝塔时安装的php版本 解决方案参见:【已解决】docker里 php7.4/7.3 libonig.so.5: cannot open shared - BUG提交 - 宝塔面板论坛(转载自宝塔) yum install oniguruma - y yum install libsodium -y 重启php-fpm成功 /etc/init.d/php-fpm-74 start Starting php-fpm done 可以正常访问切换版本后的php脚本 编辑
HACK1949的最后回复, -
- 0 篇回复
- 100 次查看
如何做到 ueditor批量上传word图片? 1、前端引用代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type"content="text/html; charset=utf-8"/> <title>编辑器完整版实例-1.2.6.0</title> <script type="text/javascript"src="ueditor.config.js"charset="utf-8"></script> <script type="text/javascript"src="ueditor.all.js"charset="utf-8"></script> <link type="text/css"rel="Stylesheet"href="WordPaster/css/WordPaster.css"/> <link type="text/css"rel="Stylesheet"h…
HACK1949的最后回复, -
- 0 篇回复
- 74 次查看
1.先定义一个数组 $data[] = array('volume' => 67, 'asd'=>'b','edition' => 2); $data[] = array('volume' => 86,'cc'=>'b', 'edition' => 1); $data[] = array('volume' => 85, 'edition' => 6,'test'=>'b'); $data[] = array('eq'=>'b','volume' => 98, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 3,'jr'=>'b'); $data[] = array('wt'=>'b','volume' => 67, 'edition' => 7); 2.获取要排序的字段 $edit = array_column($data,'edition'); 3.先进行列排序,然后让$data数组按该字段来排序。 array_multisort($edit,SORT_DESC,$data); 4.此时$data就按 edition 字段倒序的方式来排序了!! 5.如果还有其他排序条件,则往函数后添加,最后再填写$data。 和mysql order相似,参数的字段越前,优先级越高。 $vol = array_column($data…
HACK1949的最后回复, -
- 0 篇回复
- 73 次查看
首先我的server环境是在3A网络租的服务器,他们的延迟很低,用起来比较舒服 1.打开“服务器管理器”-添加角色和功能- 确保CGI安装,其他的看个人需求 然后就下一步-开始安装 安装好之后,打开浏览器访问127.0.0.1 表示已经成功 2.安装Visual C++ Redistributable for Visual Studio 2012 Update 4(x64) 另一个同理 3. 安装并解压php-5.5.8-nts-Win32-VC11-x86.zip 解压后移动到c盘根目录 打开C:\php 复制php.ini-production为php.ini 用记事本打开php.ini 做如下修改: extension_dir = "C:\php\ext" #设置php模块路径 date.timezone = PRC #设置时区为中国时区 register_globals = On #开启GET数据调用 short_open_tag = On #php支持短标签 cgi.force_redirect = 0 #开启以CGI方式运行php fastcgi.impersonate = 1; cgi.rfc2616_headers = 1 以下php扩展模块,根据需要选择开启,取消前面的分号为开…
HACK1949的最后回复, -
无过滤 <?php $res = FALSE; if (isset($_GET['ip']) && $_GET['ip']) { $cmd = "ping -c 4 {$_GET['ip']}"; exec($cmd, $res); } ?> <!DOCTYPE html> <html> <head> <title>CTFHub 命令注入-无过滤</title> </head> <body> <h1>CTFHub 命令注入-无过滤</h1> <form action="#" method="GET"> <label for="ip">IP : </label><br> <input type="text" id="ip" name="ip"> <input type="submit" value="Ping"> </form> <hr> <pre> <?php if ($res) { print_r($res); } ?> </pre> <?php show_source(__FILE__); ?> </body> </html> 观察html代码发现ping直接…
HACK1949的最后回复, -
PHP支持的伪协议 1 2 3 4 5 6 7 8 9 10 11 12 file:// — 访问本地文件系统 http:// — 访问 HTTP(s) 网址 ftp:// — 访问 FTP(s) URLs php:// — 访问各个输入/输出流(I/O streams) zlib:// — 压缩流 data:// — 数据(RFC 2397) glob:// — 查找匹配的文件路径模式 phar:// — PHP 归档 ssh2:// — Secure Shell 2 rar:// — RAR ogg:// — 音频流 expect:// — 处理交互式的流 php.ini参数设置 在php.ini里有两个重要的参数allow_url_fopen、allow_url_include。 allow_url_fopen:默认值是ON。允许url里的封装协议访问文件; allow_url_include:默认值是OFF。不允许包含url里的封装协议包含文件; 各协议的利用条件和方法 php://input php://input可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行。当传入的参数作为文件名打开时,可以将参数设为php://input,同时post想设置的文件内容,php执行时会将post内容当作文件内容。 注:当enctype=”multipart/form-data”时,php://input是无效的。 file:// 用于访问本地文件系统…
HACK1949的最后回复, -
- 0 篇回复
- 94 次查看
/usr/local/tomcat/webapps/file_in_java/WEB-INF/web.xml 读取这个WEB-INF/web.xml文件(配置文件),可以确定相对class文件夹的位置在哪里,例如读出来一个/cn/abc/servlet/ListFileServlet,那么对应的class文件的绝对路径就是/usr/local/tomcat/webapps/file_in_java/WEB-INF/classes/cn/abc/servlet/ListFileServlet.class 每一个class文件就像相当于一个PHP后端文件,如index.php,upload.php,download.php 然后就通过任意文件下载漏洞下载,反编译就得到源码,
HACK1949的最后回复, -
- 0 篇回复
- 97 次查看
PHP版本切换网上有写博客用 brew-php-switcher 切换实际没生效,博客也是相互抄,看了袭浪费时间。讲一下我的思路,因为php 可以cli 和fpm 的方式。安装php 将不同版本添加命令到bin 实现cli模式可以调用不同版本;fpm通过修改配置文件,绑定不同端口,就可以同时运行不同版本的fpm,使用nginx 时配置文件写不用的fpm的端口号就可以使用不同版本的fpm了。用 homebrew 安装后软件目录也不同。Linux、windows也可以用类似方式实现。记录一下博客,方便后续有需要的人看,节约时间。 别跟我说docker!夏天macbook 开docker 热得一匹! brew install [email protected] ## 等待brew 更新安装,太慢的,可以参考别人的博客换homebrew 的源 cd /usr/local/bin/ ## php74 是我定义的命令文件名,其他版本自行定义名字。不过下文安装对应版本composer时要使用对应的命令名 ln -s /usr/local/opt/[email protected]/bin/php php74 php74 -v PHP 7.4.21 (cli) (built: Jul 12 2021 11:57:26) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.21, Copyright (c), by…
HACK1949的最后回复,