写在20岁生日前
难以置信啊,马上就要告别那个十几岁的自己、正式迈入”20多岁”的行列当中了,用自己的玩笑话说就是”迈入了人生的第五个五年计划”。 青春匆匆流去 至今仍然记得在小学毕业的时候,家里人对我说,中学的六年一眨眼就过去了。当时自己还仍然觉得六年是一个多么漫长的时光,他们只不过是离学生时代比较远了,才会觉得中学的时光过得飞快。时间在学生的眼中应该是漫长且枯燥的。而如今,眨眼间时间已经到了大二。每每想起这个,在苦笑的同时也开始感觉到学生的时光是在指间飞速流逝的。尤其是大学的四年,看似是一段完全可以”放飞自我”而又漫长的一段时光,但这也决定了自己会成为什么样的人、有多大的能力。大学可以选择睡觉、玩乐,反正成绩除了评选奖学金和出国也没有任何用;同时也可以选择不断磨练和提升自我,让大学的时光得以充实、让自己各方面的能力得以提升。在感叹自己这么快就迈入20岁的同时,也暗自庆幸在过去的一年多的时间里,至少没有颓废和浪费太多的时间,还是有所收获的。 热爱与偏执 上了大学才发现,自己多多少少都有那么一些偏执与任性。自己认定了正确的、喜欢的、要做的事情,绝对不会轻言放弃...
uni-app中使用微信JSSDK
最近在业务上遇到一个问题:在一个H5页面中需要打开微信的扫码界面。在uni-app中,有原生的扫码方法,但是很遗憾的是,这个方法不支持H5。因此就需要用到微信的JSSDK了。 在网上找了一堆,给的方法也是五花八门。要么就是代码都是错的,要么就是没有后端代码。于是乎只能自己动手丰衣足食。 关于appid还有怎么安装JSSDK这些就不再赘述了,直接在uni-app的官网就能找到。我采用的方法是npm安装Jweixin-module。但是看DCloud论坛中有人说这样安装的话有一些模块已经过时了,因此或许可以尝试先npm安装Jweixin-moudle,之后将js替换成微信官方最新的。 由于JSSDK有严格的认证机制,因此需要进行服务端的配置。我直接使用的纯原生php来搭建的服务,因为自己的博客服务器用的不是thinkphp,而且这个认证功能也没有非常复杂,没必要杀鸡用牛刀,对于服务器本身就配置好了thinkphp框架或者flask 框架这些的,把代码改一下即可。 后端代码: <?php header('access-control-allow-c...
uni-app/微信小程序开发踩坑记 - 业务域名篇
最近在用uni-app开发小程序。在使用uni.request()的过程中,发现向业务域名请求的内容在HBuilderX的内置浏览器里面和微信开发者工具的预览加载正常,但是在Chrome和小程序真机预览中无法加载。体现为链接有100ms左右的延迟,但是请求为failed,没有任何preview。 一开始以为是业务域名的问题,但是通过检查以后发现没有问题,服务器也配置了SSL。而且Chrome中不应当受到小程序业务域名的影响。 解决方案 Chrome :CORS跨域请求问题 原因是Chrome自某个版本开始,将CORS控制调整到了严格级别,也就是在Request Header中体现出的Referrer Policy: strict-origin-when-cross-origin 。 解决方法是在服务端(这里用的是php)配置如下代码: header('access-control-allow-credentials:true'); header('access-control-allow-origin:'.$_SERVER['HTTP...
2020年度总结
在每一年的12月末,我都会在博客上写下关于这一年的总结。这到现在似乎已经成为了一种习惯。 2020年的12月末恰逢各种报告和论文扎堆,于是就留到了2021年再动笔。这个学期的期末由于疫情而提早,因此现在又正好是期末复习的高峰期。虽然还有一大堆的东西没有开始复习,但是这个年年留下来的习惯还是要继续保留下来。 2020年也许没有2019年那样多且横跨中学和大学这么大跨度的事情,但是仔细回想起来,仍然感觉2020年是精彩而又是酸甜苦辣交织的一年。 回顾2020 年初 2020真是极度不平凡的一年。在19年年末到20年年初还在学校的这一段时间,或许是我大一开学以来感到最快乐的时光之一。因为受到了某种鼓舞(?),每一天都感觉到特别有动力,每一天都感觉到特别的开心,仿佛期末带来的压力可以被全部抛在脑后。 在放寒假回家的时候,谁也没有料到在几天后,世界的格局将发生翻天覆地的变化。 在回家后,每天紧张的复习生活转变成了每天早起练车的生活。其实在一开始我并没有学车的打算,只是在家长的催促下,我和朋友一起开始了学车之旅。比较没有想到的是,在仅仅学了3天之后...
[SUCTF2019]SignIn - RSA
[SUCTF2019]SignIn __int64 __fastcall main(__int64 a1, char **a2, char **a3) { char v4; // [rsp+0h] [rbp-4A0h] char v5; // [rsp+10h] [rbp-490h] char v6; // [rsp+20h] [rbp-480h] char v7; // [rsp+30h] [rbp-470h] char v8; // [rsp+40h] [rbp-460h] char v9; // [rsp+B0h] [rbp-3F0h] unsigned __int64 v10; // [rsp+498h] [rbp-8h] v10 = __readfsqword(0x28u); puts("[sign in]"); printf("[input your flag]: ", a2); __isoc99_scanf("%99s", &v8); sub_96A(&v8, (__int64)&v9...
10月buu刷题re部分笔记
buu-SimpleRev unsigned __int64 Decry() { char cChar; // [rsp+Fh] [rbp-51h] int v2; // [rsp+10h] [rbp-50h] int v3; // [rsp+14h] [rbp-4Ch] int i; // [rsp+18h] [rbp-48h] int keyLength; // [rsp+1Ch] [rbp-44h] char src[8]; // [rsp+20h] [rbp-40h] __int64 v7; // [rsp+28h] [rbp-38h] int v8; // [rsp+30h] [rbp-30h] __int64 v9; // [rsp+40h] [rbp-20h] __int64 v10; // [rsp+48h] [rbp-18h] int v11; // [rsp+50h] [rbp-10h] unsigned __int64 v12; // [rsp+58h] [rbp-8h] v12 = __read...
Redis有关的SSRF+php原生类xss
Redis和SSRF:https://xz.aliyun.com/t/1800 利用Gopher协议拓展攻击面:https://blog.chaitin.cn/gopher-attack-surfaces/ [GKCTF2020]EZ三剑客-EzWeb 首先访问?secret获取到本机ip信息 首页的搜索框存在文件包含,尝试file://协议发现被屏蔽了,尝试file:/协议发现可以,说明其过滤不严。于是直接读取file:/var/www/html/index.php获取源码 <?php function curl($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); echo curl_exec($ch); curl_close($ch); } if(isset($_GET['submit'])){ $url = $_GET['url'...
近日学习笔记~8.8
[GWCTF 2019]枯燥的抽奖 访问check.php找到源码: <?php #这不是抽奖程序的源代码!不许看! header("Content-Type: text/html;charset=utf-8"); session_start(); if(!isset($_SESSION['seed'])){ $_SESSION['seed']=rand(0,999999999); } mt_srand($_SESSION['seed']); $str_long1 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $str=''; $len1=20; for ( $i = 0; $i < $len1; $i++ ){ $str.=substr($str_long1, mt_rand(0, strlen($str_long1) - 1), 1); } $str_show = substr($str, 0, 10); echo "<p id='...
近期Web笔记~7.26
[HCTF 2018]WarmUp php中的文件包含漏洞:?(不存在的目录)/../ 即为当前目录 在传入payload的时候对?进行二次URL编码 [HCTF 2018]admin https://www.jianshu.com/p/f92311564ad0 https://www.leavesongs.com/PENETRATION/client-session-security.html 发现源码泄露(Github),查看源码,发现是基于Flask框架的网页应用。审计route.py查看其修改密码的原理发现其只需要验证session中的username就可以修改。而Flask中的session类似于jwt,是将用户信息加密后直接存储在cookies中,于是可以尝试伪造session。 三种解法: session伪造:在config中可以直接找到密钥,再利用https://github.com/noraj/flask-session-cookie-manager来进行编码解码即可。 python flask_sess...
Xctf Web刷题记录
XCTF 4th-WHCTF-2017 Cat 有一个框可以输入域名,输入127.0.0.1会返回ping的结果,且URI加上了?url=127.0.0.1。尝试用|拼接命令无果。 这题的考点是Django使用的是gbk编码,超过%F7的编码不在gbk中有意义。于是传入一个url=%88,发现其弹出错误界面。 经过fuzz以后发现只有数字、. 和@没有被过滤 在比赛的时候有提示去阅读PHP CURL的MANUAL,查阅之后发现在php 5.5之前可以用@来表示之后要选取本地文件。 Django中,配置文件存放的目录是(文件目录)/项目名/项目名/settings.py 结合刚刚的报错文件,找到/opt/api/api/settings.py 之后再去读取sqlite文件就可以拿flag了。 XCTF 4th-CyberEarth 查看源码发现有一个?page=index.php,猜测又是file_get_contents ,于是给他来一个?page=php://filter/read=convert.base64-encode/r...