各种编程技术
子版块
-
72文章73主题
-
22文章23主题
-
16文章17主题
-
23文章26主题
- String常用方法
-
由
侠客756,
-
17文章19主题
-
13文章18主题
1,773个主题在此版块
-
- 0 篇回复
- 74 次查看
梦想CMS(lmxcms)任意文件删除 1. 漏洞详情——CNVD-2020-59469 2. 漏洞描述称后台Ba***.cl***.php文件存在任意文件删除,查看cms源码,只有BackdbAction.class.php和BasicAction.class.php这两个类文件符合名字要求 3. 查看源代码,代码中的注释显示只有BackdbAction.class.php有文件删除功能。php中的文件删除函数是unlink(),搜索一下该函数,发现BackdbAction.class.php文件存在该函数,且有变量传入,那么应该就是这个文件存在文件删除漏洞了 4. 类文件最下方的delOne()方法中传入了filename的变量,并且与`file/back`进行拼接组成文件路径,也就是说只能删除file/back这个目录下的文件,但只要能绕过路径,就能实现任意文件删除 5. 可以看到文件中的delbackdb()和delmorebackdb()都调用了delOne()方法,delbackdb()中支队文件名进行了首尾两端的空格去除,而且只校验了文件名。 6. 使用../../即可绕过目录限制,在根目录下新建一个test.txt文件,尝试删除test.txt文件,如下所示,文件被成功删除 http://localhost:8081/admin.php?m=backdb&a=delbackdb&filename=../../test.txt 7. 若网站的inst…
HACK1949的最后回复, -
apche下载 官网下载网址:Apache Haus Downloads 解压到指定的文件夹下面 安装命令官网上面有,要注意要用管理员权限打开cmd 官网下载解压后 php.ini-development 重命名为 php.ini 并打开。 打开修改 修改环境变量,添加php 在cmd中输入php -v查看是否版本 修改"D:\PHPHEIMA\server\Apache24\conf\httpd.conf"的文件 补充一个连接mysql 前面; 要去掉才能使用 增加时区
HACK1949的最后回复, -
- 0 篇回复
- 74 次查看
如果没有这个 你下载错了
HACK1949的最后回复, -
- 0 篇回复
- 68 次查看
0x00 为什么使用php序列化 序列化的原因:为了数据存取方便。 0x01 什么是php反序列化 什么是序列化,将值以字符串的形式存储:serialize($tom) 0x02 php反序列化基础语法 1、基础语法 O:6 : 参数类型为对象(object) "Person":2 : 参数名为 Person ,有两个值 s:4:"name" : s数据类型为字符串,长度为4 ,值为"name" i:18 : i为数据类型为 int 值为18 2、反序列化: 3、注意点: \x00 + 类名 + \x00 + 变量名 反序列化出来的是private变量 \x00 + * + \x00 + 变量名 反序列化出来的是protected变量 4、私有属性的反序列化: 5、魔术方法(写了才会调用,不写不会) __wakeup() //使用unserialize时触发 __sleep() //使用serialize时触发 __destruct() //对象被销毁时触发 __call() //在对象上下文中调用不可访问的方法时触发 __callStatic() //在静态上下文中调用不可访问的方法时触发 __get() //用于从不可访问的属性读取数据 __set() //用于将数据写入不可访问的属性 __isset() //在不可访问的属性上调用isset()或empty()触发 __unset() //在不可访问的属…
HACK1949的最后回复, -
- 0 篇回复
- 74 次查看
文章来源:https://www.yerenwz.com/6565.html 是的,感觉正常人的第一反应是既然有nl2br函数,那必然有反函数br2nl,然后实际上野人告诉你是没有的,哈哈哈。 所以就得自己实现,实现的话,老实说还是挺简单,但是再简单,野人还是希望官网能出在个方法,毕竟不是自己额外封装,多香啊,拿来即用,不好吗?学会CV才是编程界“最厉害”的方法。 废话就不给大家多说了,直接上br2nl的代码实例教程吧。 <?php function br2nl($text) { return preg_replace('/<br\\s*?\/??>/i', chr(13), $text); } var_dump(br2nl('1<br />2')); ?>
HACK1949的最后回复, -
- 0 篇回复
- 117 次查看
所有操作均在root权限下进行 sudo -i 1、新建文件夹【/root/lnmp】和文件【/root/lnmp/docker-compose.yml】 mkdir /root/lnmp vi /root/lnmp/docker-compose.yml 2、写入yml文件内容 version: "3" services: nginx: image: nginx:latest container_name: c_nginx ports: - "80:80" #centos文件夹【/root/lnmp/nginx/html】和容器文件夹【/usr/share/nginx/html】进行绑定,并设rw权限 #centos文件【/root/lnmp/nginx/conf/default.conf】和容器文件【/etc/nginx/conf.d/default.conf】进行绑定 volumes: - /root/lnmp/nginx/html/:/usr/share/nginx/html/:rw - /root/lnmp/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf #设置上海时区 environment: TZ: "Asia/Shanghai" #容器自启 restart: alw…
HACK1949的最后回复, -
- 0 篇回复
- 78 次查看
原文链接:windows下安装composer – 每天进步一点点 (longkui.site) Composer是一个用于PHP标准格式依赖管理的应用程序。Composer 允许您声明PHP项目所依赖的库并为您管理它。它会安装和更新您的项目所需的库。 默认情况下,Composer 不会全局安装任何东西;它基于每个项目管理依赖项,并将它们安装在项目内的目录 ( vendor ) 中。 Composer 为我们的项目提供了两件事: 有助于 PHP 的依赖管理。 帮助在项目中自动加载文件。 Node 的 NPM 和 Ruby 的包为 Composer 提供了强大的动力。 假设一个场景: 您有一个依赖于多个库的 PHP 项目。 其中一些库还依赖于其他库。 Composer 满足上述场景的要求:和 JVM 的区别 它允许您声明项目所依赖的库。 它找出您需要在项目中安装哪些版本的软件包,并为您下载和安装。 它还允许在单个命令中更新所有依赖项。 安装 Composer 的系统要求: Composer 需要在机器上安装并成功运行PHP 5.3.2+。它还需要一些敏感的 PHP 设置和编译标志。从源代码而不是 zip 存档安装 Composer 包,您将需要基于包版本控制的 git、svn、fossil 或 hg。Composer 是一种多平台工具,可在Windows 操作系统、Linux和 macOS上同等运行。 本文没有借助phpstudy来安装composer。因为下载失败了。 1.windows下安装composer…
HACK1949的最后回复, -
- 0 篇回复
- 82 次查看
原文链接:vscode+phpstudy配置php环境 – 每天进步一点点 (longkui.site) 上一篇文章中借助phpstudy搭建了php环境,并成功新建了一个网站。这篇文章简单介绍一下,如何借助vscode搭建php开发环境。 我们打开vscode,下载一个php Debug插件,这个插件主要是为了我们以后方便调试用。 http://kongkui.oss-cn-qingdao.aliyuncs.com/images/2022043006.png 然后我们打开“文件”—>”首选项”——>”扩展” http://kongkui.oss-cn-qingdao.aliyuncs.com/images/2022043007.png 我们往下拉,找到php,然后打开setting。 http://kongkui.oss-cn-qingdao.aliyuncs.com/images/2022043008.png 加入类似下面的设置,注意,不要复制我的,填写你自己php.exe的路径。 "php.debug.executablePath": "D:/Software/phpstudy/main/phpstudy_pro/Extensions/php/php7.3.4nts/php.exe", "php.validate.executablePath": "D:/Software/phpstudy/main/phpstudy_pro/Extensions/php/php7.3.4nts/php.…
HACK1949的最后回复, -
- 0 篇回复
- 79 次查看
原文链接:phpstudy搭建php环境 – 每天进步一点点 (longkui.site) 本文借助phpstudy搭建基础的php环境,让php配置不在麻烦。 首先,从下载phpstudy: 小皮面板(phpstudy) – 让天下没有难配的服务器环境! (xp.cn) 我下载的版本是8.1.1.3。下载安装后(注意安装路径不能有中文), 打开后,然后按照下图所示,点击“启动”,就可以看到启动信息。 http://kongkui.oss-cn-qingdao.aliyuncs.com/images/2022043001.png 然后在浏览器里输入: localhost:80 http://kongkui.oss-cn-qingdao.aliyuncs.com/images/2022043002.png 然后我们用phpstudy自己新建一个网站。 点击“网站”然后点击“创建网站” http://kongkui.oss-cn-qingdao.aliyuncs.com/images/2022043003.png 然后我们输入必要信息 http://kongkui.oss-cn-qingdao.aliyuncs.com/images/2022043004.png 说明: 域名就是你申请的域名,如果你有公网域名并且做好了映射,那么可以填写,如果没有的话,建议填写电脑ip。 端口号默认是80,因为这个地方我们已经有一个默认的网站了,所以把端口改成81。然后点击确定即可。 然后我们访问localhost:81。就可…
HACK1949的最后回复, -
1. 部署 PHP 1) 部署环境 IP 地址(本地测试环境):192.168.0.10 操作系统:Linux CentOS 7.9 Docker 版本: 20.10.7 2) 拉取 php 镜像 $ docker pull php:7.4-fpm # 这里拉取 7.4 版本 $ docker images # 查看镜像列表 REPOSITORY TAG IMAGE ID CREATED SIZE php 7.4-fpm caf369bb935e 10 days ago 443MB ... $ docker inspect php:7.4-fpm # 查看镜像详细信息 注:可以访问 Dockers Hub(https://hub.docker.com/_/php?tab=tags)查询 php 镜像。 3) 运行容器 $ docker run --name php-7.4-fpm -p 9000:9000\ -v /home/docker/nginx/html:/var/www/html\ …
HACK1949的最后回复, -
- 0 篇回复
- 71 次查看
进入可以看到,这时一道文件上传题目 直接上传test.php 提示Not image不是图片,可能是MIME绕过,尝试抓包修改Content-Type 提示Not php,猜测可能是检测后缀名不能是php,将test.php改名为test.phtml进行上传 根据上传提示,不能有<?应该是检查了我们的文件内容 可是使用script脚本的木马,只需要将language修改为php即可 <script language="php">@eval($_POST['cmd']);</script> 这次直接提示我们不是一个图片,检查了我们的文件内容 在文件头中加入GIF89,尝试绕过图片检测 可以看到文件上传成功,那么文件上传到了哪里呢?一般默认就是upload目录,有些可以在源代码中看到上传地址 访问上传的木马 查看源代码可以看到,木马已经被当做php执行,直接使用蚁剑连接木马 测试连接成功,右键查看flag 使用知识点: MIME绕过 phtml、php3等后缀解析为php javascript脚本language属性设置解析PHP GIF89绕过检测文件是否为图片函数
HACK1949的最后回复, -
- 0 篇回复
- 89 次查看
安装教程参考一:https://www.cnblogs.com/haw2106/p/9839655.html 安装教程参考二:https://www.cnblogs.com/jiangfeilong/p/11143698.html 安装php版本8.1.10:https://www.php.net/distributions/php-8.1.10.tar.gz 易错步骤梳理: 1、安装的版本是php8,因此教程中php5注意改为8,配置的地方路径也改一下 2、./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/Apache2/bin/apxs 其中的Apache2要根据自己的安装路径来修改 报错解决1: make: *** No targets specified and no makefile found. Stop. 这是因为缺少xml2-config文件,解决方案: sudo apt-get install libxml2 sudo apt-get install libxml2-dev 报错解决2: configure: error: Package requirements (sqlite3 > 3.7.4) were not met: 使用下列命令: yum -y install sqlite-devel 报错解决3: make: *** [ext/fileinfo/libmagic/appre…
HACK1949的最后回复, -
- 0 篇回复
- 76 次查看
打开AndroidManifest.xml,给activity节点添加属性android:launchMode,activity节点配置内容示例如下: <activity android:name=".JumpFirstActivity" android:launchMode="standard" /> launchMode属性的取值说明见下表。 调用Intent对象的setFlags方法设置启动标志,示例如下: // 创建一个意图对象,准备跳到指定的活动页面 Intent intent = new Intent(this, JumpSecondActivity.class); // 设置启动标志。Intent.FLAG_ACTIVITY_NEW_TASK表示创建新的任务栈 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); // 跳转到意图对象指定的活动页面 启动标志的取值说明如下: Intent.FLAG_ACTIVITY_NEW_TASK:开辟一个新的任务栈 Intent.FLAG_ACTIVITY…
HACK1949的最后回复, -
- 0 篇回复
- 67 次查看
效果 实现分析 基本上没有什么难点,就是布局,然后显示用户协议对话框,动态处理权限,判断是否显示引导界面,是否显示广告界面等。 布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".component.splash.activity.SplashActivity"> <!--banner--> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="120dp" android:src="@drawable/splash_banner" /> <!--logo--&…
HACK1949的最后回复, -
- 0 篇回复
- 66 次查看
目的是构建一个以eclipse为主体,可以创建java的windows窗口程序,android程序的开发环境。 1、下载jdk-18,目前最新版本。https://www.oracle.com/java/technologies/downloads/ jdk-18已经包含了 jshell 交互式编程接口。 2、下载安装eclipse,要点packages链接,找到 Eclipse IDE for Java Developers,然后再下载,不要直接下载。https://www.eclipse.org/downloads/packages/ 3、安装WindowBuilder Editor。在help菜单中,打开 marketplace,在 find 中输入 windowbuilder,安装即可。 4、安装android studio,目前版本为:android-studio-2021.2.1.15-windows.exe,sha256为d99d2b24e232ac869d9c9e64cd19cd2572cfd4512e7df7941b812c4cd39d7b45,gg下不了,可以搜索一个下载链接,之后检查sha256是否一致就行了。 5、设置全局DL,在安装andorid studio,否则有些在线下载的插件无法安装。
HACK1949的最后回复, -
- 0 篇回复
- 82 次查看
1.背景 用惯了旧的as版本,现在换成新的as版本4.1.3 发现无法按照旧版教程安装 【官网里还有更新的as版本,但是lombok没有更新,因为lombok无法就兼容所有版本】 一下是我的as版本信息 记住我的版本是 201.8743 在这个as里,在settings 设置里的插件 Plugins 没找到 lombok 哪怕是换了源也还是没有 2.解决 所以我直接去lombok官网下载后本地安装即可 lombok官网地址 https://plugins.jetbrains.com/plugin/6317-lombok/versions 然后选择Android Studio 根据本版适配范围来选择,我的版本是 201.8743 因此选择 build 201.6668 — 201.* 的,即 0.34-2020.1这个版本号 点击 蓝色的 ”0.34-2020.1“ 下载 然后 在as选择这个安装包来安装 勾上插件点击ok 然后在项目 build.gradle 里引入 //lombok配置依赖 implementation"org.projectlombok:lombok:1.18.12" annotationProcessor "org.projectlombok:lombok:1.18.12" 在 defaultConfig 配置 …
HACK1949的最后回复, -
- 0 篇回复
- 73 次查看
1、Desired Capabilities appium 在启动 session 时,需要提供 Desired Capabilities。Desired Capabilities 本质上是字典对象,由客户端生成并发送给服务器(appium Desktop),告诉服务器 App 运行的环境。 from appium import webdriver # 定义 Android 运行环境 desired_caps = { 'deviceName': 'Android Emulator', 'automationName': 'appium', 'platformName': 'Android', 'platformVersion': '7.0', 'appPackage': 'com.android.calculator2', 'appActivity': '.Calculator', 'noReset': True, } driver = webdriver.Remote(command_executor='http://localhost:4723/wd/hub',desired_capabilities=desired_caps) … 1. deviceName:启动的设备、真机或模拟器,如 iPhone Simulator、Android Emulator、Galaxy S4 等。 2. automationName:使用的自动化引擎,如 appium…
HACK1949的最后回复, -
- 0 篇回复
- 79 次查看
安卓往系统中添加日程提醒,吭比较多。 首先有个需求(仿制 ios 日历),为什么仿制ios呢?这个得问产品了,我只是一个搬砖的程序员 (*´艸`) 捂嘴 大致有日期,时间,重复设置,自定义重复设置,位置提醒设置 跟系统日历的设置类似,毕竟需要同步到系统,所以设置上面保持规范,都是设置好日期时间,然后重复项。 一般的日历添加也比较简单(重复规则比较烦),先看效果图 添加日历首先得有一个账户,这个自己定义一个就行了 /** * 添加日历账户,账户创建成功则返回账户id,否则返回-1 */ private fun addCalendarAccount(context: Context): Long { val timeZone: TimeZone = TimeZone.getDefault() val value = ContentValues() value.put(CalendarContract.Calendars.NAME, CALENDARS_NAME) value.put(CalendarContract.Calendars.ACCOUNT_NAME, CALENDARS_ACCOUNT_NAME) value.put(CalendarContract.Calendars.ACCOUNT_TYPE, CALENDARS_ACCOUNT_TYPE) value.put(CalendarCon…
HACK1949的最后回复, -
- 0 篇回复
- 77 次查看
Flutter通过自绘 UI 组件,构建高质量跨平台组件库,解决了此类框架难以解决的双端一致性, Bridge 通信效率等问题。并提供丰富的 Widget 组件,渲染性与 Native UI 相媲美,掀起了大家对下一代跨平台技术探索的热情。 第一类:WebView 跨平台技术 第一代跨平台技术主要以 Webview 容器,代表有 PhoneGap/Cordova 。优点:功能丰富,标准强,历史悠久,有强大的前端生态支持;是目前最成功的跨平台渲染容器。支付宝及微信更是以此为载体,打造小程序内核。第一代渲染引擎主要缺点在于性能方面及高级组件方面,流畅性始终与 Native 无法媲美。 Android 平台 WebView 采用多进程架构,主要分为: 1)Browser 进程; 2)Render 进程; 3)GPU 进程。 Browser 进程负责用户输入, Touch 事件处理、平台相关的对接等功能。 Render 进程 Main Thread 负责 JS 的执行, CSS 解析, Layout Paint ,输出 DisplayList 供 CC 使用。 Work Threads 进行图片的编解码。 Compositor Threads 负责 Layer 的合成,和 Tile 分片;将分片输出成 Bitmap 或者 GL 指令,通过 IPC 输出到 GPU Process 。 GPU Process 的 GPUThread 线程负具体指令的绘制,将绘制指令渲染输出到显示器上。 WebView渲染流程及线程模型 W…
HACK1949的最后回复, -
- 0 篇回复
- 77 次查看
最近在做个项目要求app获取当前连接的wifi信息和可用WiFi列表。 uni.getNetworkType({ success: function (res) { console.log(res.networkType); if(res.networkType != "wifi"){ uni.showToast({ icon:'none',duration:2000, title:"未连接WIFI", }) }else{ //判断获取的WiFi是否为机型WiFi // 主窗体 var MainActivity = plus.android.runtimeMainActivity() // 上下文 var Context = plus.android.importClass('android.content.Context') // 导入WIFI管理 和 WIFI 信息 的class plus.android.importClass("android.net.wifi.…
HACK1949的最后回复,