攻防世界—web(进阶区)

前记

瞅瞅进阶区的,继续总结。

1.NaNNaNNaNNaN-Batman


打开题目并下载附件

有乱码但看到<script>等标签的,后缀名改为html查看

毫无头绪,查看wp发现

整理下弹框内容发现

直接将下面代码复制到控制台执行

1
2
3
4
5
6
7
8
9
var t=["fl","s_a","i","e}"];
var n=["a","_h0l","n"];
var r=["g{","e","_0"];
var i=["it'","_","n"];
var s=[t,n,r,i];
for(var o=0;o<13;++o)
{
document.write(s[o%4][0]);s[o%4].splice(0,1)
}

得到flag

2.PHP2


打开题目链接

你可以浏览这个网站吗?No,I can’t.
查看源码什么都没有,后面加上index.php。。。没用,加上index.phps(phps文件就是php的源代码文件,通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替)

了解下urldecode()函数

然后分析代码,get传入的id经过urldecode()函数解码,如果解码结果为admin,输出“Access granted!”和Key值(即flag)。经过两次urlencode()函数解码,所以

1
payload:http://111.198.29.45:45494/index.php?id=a%2564min

得到flag

3.unserialize3


题目提示unserialize即反序列化,PHP魔法函数中存在wakeup()方法,unserialize()会检查是否存在一个wakeup方法。如果存在,则会先调用 __wakeup方法,预先准备对象数据。
于是构造

1
payload:O:4:"xctf":1:{s:4:"flag";s:3:"111";}

发现回显结果为:

1
bad requests

这里是因为wakeup()的影响,所以要绕过wakeup,当序列化字符串表示对象属性个数的值大于真实个数的属性时就会跳过__wakeup的执行
故构造

1
payload:http://111.198.29.45:57697/?code=O:4:"xctf":2:{s:4:"flag";s:3:"111";}

即可得出flag

后记

ok,so much for today.


  Reprint please specify: clam 攻防世界—web(进阶区)

 Previous
椭圆加密算法ECC 椭圆加密算法ECC
前言同RSA(Ron Rivest,Adi Shamir,Len Adleman三位天才的名字)一样,ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)也属于公开密钥算法。RSA算法是基于大整数因子分解问
2019-11-24 yxld
Next 
攻防世界—web(练习区) 攻防世界—web(练习区)
前记做题平台:攻防世界平台地址:https://adworld.xctf.org.cn/做题工具:Firefox web1.view_source拿到题目链接打开后发现右键不管用了于是乎在Firefox上打开web开发者中的web控制台,可
2019-09-25 yxld
  TOC