MD5()函数绕过

示例代码: if (md5($_POST['md51']) == md5($_POST['md52']) && $_POST['md51'] != $_POST['md52']) 弱类型绕过 PHP在处理哈希字符串时,会把每一个0E开头的哈希值解释为0,所以若两个不同密码进行哈希后以0E开头,则会被认为值均为0,从而判等。 md5加密后开头为0E的值: QNKCDZO 240610708 s878926199a s155964671a s214587387a s214587387a 以示例代码为例,分别给md51和md52赋表中不同的值。经过md5加密后,值均为0,而原始值又不同,顺利绕过if判断。 数组绕过 md5()函数无法处理数组,会对传入的数组返回NULL,即数组经过md5加密后均得到NULL。 我们仅需传入如下数据即可,数组内容随意: md51[]=1&md52[]=2 本文链接:MD5()函数绕过 | Atmet (oopsdc.tk) 文章许可:本文采用CC BY-NC-SA 4.0许可协议,转载请注明出处。

August 13, 2021 · 1 min · DaChui

BUUCTF

Basic Linux Labs 2020年10月24日 更新:目前所有靶机均能直接访问互联网。 点击启动靶机可以启动一台安装好了 LAMP 的机器。 并且这台机器位于靶机内网,所有动态靶机均可直接通过主机名访问这台机器。 但由于目前一个账户只能同时启动一台靶机,您如果有需要建议浏览器开一个隐私窗口,注册一个新账号来启动这个靶机。 ssh 用户名:root 密码:123456 地址和端口为动态分配的。 开启环境后按照题目给定地址和端口使用SSH连接即可。 连接上云主机后使用ls命令,发现当前用户家目录下啥也没有,再使用cd ..命令切换到根目录下看看,发现flag.txt文件。 也可直接使用cat /flag.txt命令查看flag。 BUU LFI COURSE 1 启动环境后得到如下PHP代码: <?php /** * Created by PhpStorm. * User: jinzhao * Date: 2019/7/9 * Time: 7:07 AM */ highlight_file(__FILE__); if(isset($_GET['file'])) { $str = $_GET['file']; include $_GET['file']; } 本地文件包含,通过file参数进行传参,可在URL后构造参数?file=/flag查看flag。 拓展 通过Wappalyzer插件可以发现网站使用了nginx服务,尝试访问nginx访问日志: ?file=/var/log/nginx/access.log 页面回显出我们刚才的访问记录,接下来我们使用bp抓包尝试写入phpinfo。 通过在User-Agent字段最后插入aaaaaaa<?php phpinfo();?>bbbbbbb传入phpinfo(),刷新页面后检查是否传入成功。 Request请求包如下: GET /?file=/var/log/nginx/access.log HTTP/1.1 Host: <domain>:<port> Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5....

August 13, 2021 · 3 min · DaChui

ATT&CK实战一

一、环境搭建 1.1 下载虚拟机文件 自行搜索。 1.2 环境介绍 开机密码:[email protected] 本次实验共3台主机,Win7作为Web服务器,是最先攻击点,Win2k3为内网域成员主机,Win2k8 R2为内网域控主机。 Kali:自主搭建,配置与Web服务器同一网段的IP,使用命令ifconfig eth0 <ip>即可。 Win7:双网卡,即存在内外网IP。外网网卡通过DHCP自动获取IP,内网网卡配置静态IP:192.168.52.143。服务器存在yxcms。分别与Kali(NAT模式)和内网两台主机(自定义VMnet2)连通。 Win2k3:只有内网网卡,IP:192.168.52.138,使用VMnet2。 Win2k8 R2:只有内网网卡,IP:192.168.52.141,使用VMnet2。 拓扑图如下: ![Untitled Diagram](https://gitee.com/oopsdc/PicBed/raw/master/img/Untitled Diagram.png) 安装完成之后在Win7主机上打开phpstudy开启Web服务。 二、信息收集 2.1 探测存活主机 命令: nmap -sS -sV -O 192.168.106.0/24 # 此处的IP为NAT模式下Win7和Kali自动获取到的IP # 参数说明 sS : SYN半连接扫描,只进行前两次握手 sV : 显示服务器详细版本 O : 显示服务器操作系统(不太准确) 结果: Nmap scan report for 192.168.106.150 Host is up (0.00044s latency). Not shown: 998 filtered ports PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 2.4.23 ((Win32) OpenSSL/1....

July 21, 2021 · 2 min · DaChui

浅析APNs推送机制

APNs简述 Apple Push Notification server(APNs),即苹果推送通知服务。 APNs出现需求 由于移动设备内存、CPU、电池容量等各种因素,iOS不允许APP进程常驻后台(时限大概为10min)。 当用户主动关闭APP或后台APP进入后台达到限定时长后,意味着该APP进程的结束,在一定程度上保证了手机的流畅度与使用时长。但这也同时意味着服务器无法主动和用户交互(如实时推送消息),为了解决这个限制,苹果推出了APNs,允许设备和服务器分别与苹果的推送服务器保持长连接状态。 iOS通知 iOS通知分为本地通知和远程通知两类,APNs是远程通知功能的核心。 本地通知 由本地应用触发,一般是基于时间的通知形式,如闹钟、日历、待办事项等。 远程通知 通过自建服务器推送消息的通知形式。 APNs推送流程 苹果官方APNs概述:Local and Remote Notification Programming Guide: APNs Overview (apple.com) 以下为APNs推送流程图: Provider:自建应用服务器 APNs:苹果APNs推送通知服务器 Device:苹果设备 Client App:应用 大致流程可分为以下4点: 苹果设备安装应用后会向APNs服务器进行注册,注册成功后APNs服务器返回一个deviceToken,且二者之间会维持一个基于SSL协议的TCP流通讯的长连接。 拿到deviceToken后设备会将其发送至自建应用服务器 有消息需要被推送时,自建服务器会将消息按指定格式结合deviceToken一并打包发送给APNs。 APNs将新消息推送至设备,并在设备屏幕上显示出来(因为设备和服务器之间维持了一个长连接) 结合上述过程可以发现,真正完成推送的是APNs服务器,消息一定是由APNs服务器推送给我们的设备,自建应用服务器只是将需要推送的消息告诉APNs服务器。至于如何维护消息队列或如何保证消息能被推送到指定设备上,这些功能都是由APNs实现的。 deviceToken deviceToken是一个APP安装在设备上的唯一标识符,一个APP在不同设备上的deviceToken不同,同一台设备重新安装同一个APP后deviceToken也会不同。 项目代码AppDelegate中有一个回调方法,当APNs注册成功后通过该回调方法可以获取到返回的deviceToken。 - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken APNs拿到这个包之后会验证包结构是否正确,验证无误后会提取其中的消息,再将消息推送至指定设备。 消息体结构如下: { "aps":{ "alert":{ // 显示在用户设备上的推送标题内容 "title":"Test Request", "body":"This is a test msg.", }, "badge":5, // 显示的数量(整形类型),是在应用icon右上角显示的数量,提示有几条未读信息 "sound":"default" // 推送消息声 } } 其实这就是一个JSON结构体,上述代码只是一种简单消息体,详情可见苹果官方文档:Local and Remote Notification Programming Guide: Creating the Remote Notification Payload (apple....

July 20, 2021 · 1 min · DaChui

Arm开发板联网配置

文章背景 使用S5P6818开发板时,有业务上云的需求,遂有本文,内容较少,仅涉及联网部分。 问题描述 插上网线后无法获取IP 配置静态IP后无法ping通外网 解决方案 分两步解决。 1.配置静态IP 方法一 命令行配置: ifconfig eth0 <ip> netmask <netmask> 方法二 写配置文件: vi /etc/init.d/rcS # 网卡开机自启 ifconfig eth0 up ifconfig eth0 <ip> netmask <netmask> 2.配置网关及DNS服务器 完成第一步后,可以ping通局域网下的主机,但无法ping通外网,出现如下报错: sendto: Network is unreachable 使用route命令查看路由表: Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface <ip> * 255.255.255.0 U 0 0 0 eth0 发现没有网关,配置网关: route add default gw <ip> 再使用route命令验证一下,确认配好。 之后便要配置DNS解析,在/etc目录下新建一个resolv.conf配置文件,内容如下: #114 DNS服务器 nameserver 114.114.114.114 #微软 DNS服务器 nameserver 233....

July 20, 2021 · 1 min · DaChui

utterances博客评论插件

概述 utterances是一个基于GitHub issue,拥有多种主题的开源小组件,本文将简述使用如何在hugo博客部署utterances。 配置过程 新建仓库 新建一个公开的仓库,用于存放评论,名字随意。作者在此处创建一个名为utterances的公开仓库。 安装utterances GitHub Apps - utterances 点击安装即可,选择仓库: 安装完成后会自动跳转到官方页面。 在文件中添加插件 官方文档:utterances 修改footer.html文件,以PaperMod主题为例: <footer class="footer"> {{- if .Site.Copyright }} <span>{{ .Site.Copyright | markdownify }}</span> {{- else }} <span>&copy; {{ now.Year }} <a href="{{ "" | absLangURL }}">{{ .Site.Title }}</a></span> {{- end }} <span>&middot;</span> <span>Powered by <a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a></span> <span>&middot;</span> <span>Theme <a href="https://git.io/hugopapermod" rel="noopener" target="_blank">PaperMod</a></span> <script src="https://utteranc.es/client.js" repo="oopsdc/utterances" issue-term="title" theme="github-light" crossorigin="anonymous" async> </script> </footer> 运行命令hugo server进入一篇文章即可查看评论插件效果。...

July 20, 2021 · 1 min · DaChui

ProxyChains简单使用

概述 ProxyChains是一个Linux和Unix下的代理工具,允许TCP和DNS通过代理隧道,支持HTTP、SOCKS4、SOCKS5类型的代理服务器,且可配置多个代理。 ProxyChains通过用户自定义的代理列表强制连接指定的应用程序。 本文简述kali下如何通过ProxyChains使用Windows主机代理。 相关资料 GitHub项目地址 ProxyChains:haad/proxychains: proxychains - a tool that forces any TCP connection made by any given application to follow through proxy like TOR or any other SOCKS4, SOCKS5 or HTTP(S) proxy. Supported auth-types: “user/pass” for SOCKS4/5, “basic” for HTTP. (github.com) ProxyChains-ng:rofl0r/proxychains-ng: proxychains ng (new generation) - a preloader which hooks calls to sockets in dynamically linked programs and redirects it through one or more socks/http proxies. continuation of the unmaintained proxychains project....

July 9, 2021 · 1 min · DaChui