Linux的一些学习笔记Ⅱ
vim程序编辑器vi:一种文本编辑器
vim:可以理解为vi的升级版,不仅如此,它还是一个“程序开发工具”
12vi/vim 文件名//可以用vi/vim创建一个新的文件
编辑模式下一些vi/vim的按键补充
123456789101112[ctrl]+[f] //屏幕向下移动一页[ctrl]+[b] //屏幕向上移动一页0 //移动到某一行的最前面字符处$ //移动到某一行的最后面字符处G //移动到这个文件的最后一行gg //移动到这个文件的第一行N[enter] //光标向下移动n行/word //向下寻找一个名称为word的字符串dd //删除光标所在的那一整行yy //复制光标所在的那一整行u //复原前一个操作(撤销)[ctrl]+r //重做上一个操作
vim记录的比较少,以后再说(开溜
关于php反序列化链的构造以及application/x-www-form-urlencoded的一小点细节
今天复盘了一道php反序列化构造链的题目
昨天试手了一下dasctf春季赛,接触了这道php反序列化构造链的题目
其实之前也接触过一次,但一直没来得及总结……
题目的源码如下
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869<?phpclass crow{ public $v1; public $v2; function eval() { echo new $this->v1($this->v2); } public function __invoke() { $this->v1->world(); }}class fin{ public $f1; public function __destruct ...
2022HFCTF的一道sql题
几天前接触了一下HFCTF,太菜了被打爆了,完全帮不上忙,之后看了一下学长们的解题过程学习了一下
首先就被前端的限制给迷惑了,但是其实可以在后端打,所以这个前端可以不用管
后端js给了源码,sql语句是这样的
给了创建的表,表为auth,username和password是列,那么我们只需要将username和password给查出来就可以了
然后还给了一个正则表达式
一开始能看出来后端过滤掉了union和binary,binary这里不知道是干什么的,这里问了一下学长,才知道这个binary可以将某个查询后的结果回显以二进制的方式输出
建议是自己在本地环境测试一下这个正则表达式,来知道剩下的过滤了些什么
随便试了一些例子
过滤了*、-、空格、()、#,这就麻烦大了,因为连括号都没得用的话就代表不能使用substr这样的函数来盲注了,而且想用注释符闭合语句的方法不可取,得用其他的方法来闭合语句或者是不闭合(到后面发现其实不用闭合)
之后看了看几个学长们的做法
这里附上Kevin学长提供的脚本,基本盲注思路还是差不多的,重点是研究一下这个payload
12345678910i ...
记Hgame-final的一道sql注入的复现
这道sql注入题有许多值得学习的地方,final那个时候刚做完一道misc题,时间就已经不太够了,
今天想复盘下但是题目的环境关了,没把源码下过来……草
嫖了下源码,对源码进行了分析
emm,其实过滤的还挺多的
一个个分析,空格、用来盲注的substr、mid(和substr类似,可以选取字符)等好多常用的都被过滤了……
那个时候没想到啥好法子来绕过过滤(时间也比较紧)所以没做出来,有些遗憾了
比赛结束之后我和kabuto师傅交流了一下,总结了一下绕过的方法
空格被过滤了,可以用()或注释符/**/两者替代,具体视情况使用
单引号和等于号也被过滤了,所以类似于like/rlike/regexp 'xxxxx'之类的也不能用的,到后面发现由于这道题的sql语句为SELECT code,msg FROM errors WHERE code='.$code,这说明code后面的可以是数字,所以本来不加引号也可以的,即为(code=0||your command),唯一需要使用单引号的地方是上述’xxxxx’,但可以将这一串字符串转化为hex,例如将pokemon ...
Hgame的知识点总结(week4)
CommentXml(可扩展标记语言)与html(超文本标记语言)比较类似,当xml的外部实体解析开启(允许了外部实体的加载)之后,就会存在xxe注入的问题
XXE漏洞全称XML External Entity Injection,即外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁用外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站等危害
建议:禁用xml外部实体解析
补充一下伪协议:PHP 伪协议是 PHP 支持的协议与封装协议
Filesystem使用connect请求方法可以绕过go后端文件系统的路径清洗,对于connect请求,路径和主机都保持不变
有一个注意点,如图(参考自官方wp)
这道题网上有类似的非预期解
注意把相对路径../改成当前路径./
目前这个特性go语言仍然未修复
Go语言的Issue:https://github.com/golang/go/issues/40940
补充相对路径和绝对路径
补充curl
Markdown online绕过登录,利用try 和catch的开发漏洞,使得try ...
Hgame的知识点总结(week2)
Apache-ssrfSSRF即为服务端请求伪造,是一种由攻击者构造形成由服务器端发起请求的一个漏洞。一般情况下,SSRF 攻击的目标是从外网无法访问的内部系统,本题的目标也是访问服务器的内网,以此可以拿到flag,分析如图
漏洞形成的原因大多是因为服务端提供了(客户端)从其他服务器应用获取数据的功能且没有对目标地址作过滤和限制
个人理解:客户端->服务端->内网服务器(本地web应用等等)
摘自官方的wp
摘自ctf-wiki
建议是——尽快将自己的apache服务器更新到最新的版本,以及配合一些其他的安全措施(类似于防火墙之类的)
一本单词书(反序列化)==是一种弱类型比较,只要两个变量的value值相等(可利用php处理字符的特性)即可
===即为强类型比较,必须要保证两边的变量的value和数据类型都相等才会返回true,否则为false
本题使用了弱类型比较,所以使用“adm1n”和"1080+"等类似的操作都可以绕过登录
建议使用强类型比较,以防止此类绕过现象发生
其实我一开始的处理方法是只看了decode的unserialize(没弄套 ...
Hgame的知识点总结(week1)
Referer包含发出请求的页面的地址(url),通常来讲referer可以告诉服务器我是通过了xxx网址(例如搜索引擎等)的链接连接到了这个网址(访问这个URI),服务器可以由此进行一些数据上的处理,即为一种来源,可以在一定程度上起到防盗链的作用。
Cookie由key=value等的形式组成,发明cookie的目的是以此维持客户端和服务器的长久会话关系以及存储之前的通信状态(与http是无状态协议有关),举个例子来讲:如果你在网购,如果没有cookie的存在,那么你每一次点击一个新的链接的时候,你往往每一次都需要重新输入账号密码,十分的麻烦。Cookie也是一种认证的手段,客户端在访问服务器对应的资源时携带cookie,告诉服务器你这个客户端的用户是xxxx
Set-CookieHTTP 响应标头用于将 Cookie 从服务器发送到用户代理,以便用户代理以后可以将其发送回服务器,往往在你注册一个账户的时候出现。Set-cookie和cookie两者是一一对应的。
User-agent
X-forwarded-for用于标识连接到web服务器的客户端的原始ip地址
代理服务器一 ...
Hgame 2022 final write up
至少没交白卷,算是个签到型选手了这次……
MISCHGAME 真好玩花了很久的时间,根本原因还是见识不足了……感谢土豆学长的指导
一开始打开压缩包有 7 个二维码碎片,琢磨一段时间拼接即可
接下来是 0 宽字符解密
点击网址下载文件
关键文件是password的wav文件,根据hint提示有 3 段密码,第一段是无线电,用RX-SSTV接收即可。第二段是音频隐写,用slienteye 得出第二段密码。最后一段的密码在波谱里面(这也太小了……)然后得出压缩包的密码
得到一个图片,根据hint的lsb隐写,得出一大串base64字符串,得到学长一番指导后选择其中一段 base64转图片解码,得到一个datamartix二维码,识别即可
可以用这个在线工具识别各种二维码,比较好用https://online-barcode-reader.inliteresearch.com/
web的pokemonV2倒没有做出来,我之后会复现然后再写一篇博客出来的……总结:hgame 终于结束了,这几个月以来的时间也学到了很多东西, 虽然 final 的表现有些不尽人意,但是还是有进步的。认识了出题 ...