攻防世界WEB新手区11、12

command_execution

  • 题目来源: Cyberpeace-n3k0
  • 题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。
  • 分析

(1)打开网页

image.png

(2)先试着输入127.0.0.1,得到了反馈
image.png

(3)试着使用ls语句,发现多出了index.php
image.png

说明源代码没有对这些命令语句经行过滤,正如题目所说没有写waf

(4)接着使用find语句,寻找flag
image.png

(5)接着使用cat语句得到flag
image.png

关于Linux的常用命令建议阅读https://www.runoob.com/w3cnote/linux-common-command-2.html

simple_js

  • 题目来源: root-me
  • 题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )

  • 分析

(1)打开网页
image.png

(2)先看看源代码,在地址前添加view-source:
image.png

(3)分析一下代码(博主先吐槽一下,源码里搞了很多花里胡哨的东西,有用的没几个)

1.先定义了一个函数dechiffre;

函数里定义了参数pass并赋值一串字符”70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65”;

定义了tab参数并使用了split()函数以’,’分割参数pass_enc并赋值给tab;

定义了tab2参数同理用split()函数以’,’分割参数pass并赋值给tab2;

又定义了几个参数i、j、k、l=0、m、n、o、p=””,再赋值i=0,j=tab.length,n=tab2.length(经过split函数的分割后pass被分割成18个部分,即tab2.length的值为18);

接下来写了一个for循环,i=(o=0)即让i的初始值为0,i<(k=j=n)即i<18,让o=tab[i-1],p+=string.fromcharcode((o=tab2[i]))这里使用了string.fromcharcode
函数即返回对应的ASCLL值,即返回对应tab2里面的数字对应的ASCLL值,再把转换出来的每一个值加到p这个参数里,当i=5时结束循环;

又定义一个for循环内容与前面一样,前面求的是i小于等于5,这里求i大于5小于17,又因为tab2也只有18个值从0开始即把tab2里所有值转换成ASCII对应的值,对照一下ASCII表可得到p的值为 FAUX PASSWORD HAH;

然后p再加上tab2[17]对应的符号(A),那P就是FAUX PASSWORD HAHA。再把p的值赋值给pass然后结果返回pass。

prompt()是用于显示可提示用户进行输入的对话框。

额。。。无论输入什么值都会返回FAUX PASSWORD HAHA

我们还可以发现后面有一串没有起作用的由十六进制组成字符,还提示我们带入dechiffre函数中转化对应的ASCII值,由此我们猜测这应该是对应的密码,先转换成十进制String[“fromCharCode”]={55,56,54,79,115,69,114,116,107,49,50},带入上面运算,pass=786OsErtk12(这里其实根据题目提示的flag格式可以推出这个就是flag)

(4)又因为无论输入什么值都会返回FAUX PASSWORD HAHA,我们用另存网页,用记事本修改一下代码再打开

image.png

这行p += String.fromCharCode((o = tab2[i]))删掉2成p += String.fromCharCode((o = ta[i]));

同样p += String.fromCharCode(tab2[17])也删掉2p += String.fromCharCode(tab[17]);即让它返回的是tab里对应的ASCII的值也就是我们输入的值。

修改完后打开网页,输入55,56,54,79,115,69,114,116,107,49,50得到的也是这串数字所对应的ASCII值
image.png即flag

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021-2023 00hello00

请我喝杯咖啡吧~

支付宝
微信