【web安全学习篇1】VBS脚本基础编写总结

  • VBS初始及变量
  • 常量
  • 注释与数学运算
  • 布尔类型
  • if判断
  • select语句实现多条件循环
  • 循环结构
  • 循环嵌套
  • 数组的定义与应用
  • 定义二维数组及应用
  • 初识函数
  • 子程序
  • 用VBS脚本运行可执行文件
    • 总结

引言:非科班出身,自学web渗透的小白。初次写博客,不到之处还望多多包涵。学习是个漫长的过程,而且经常产生疑惑,感觉学的东西没什么实际意义,不知道怎么用。个人也比较健忘,笔记一直胡乱地写。看了不少博文,就想着自己也写一些。一来可以整理一下自己的笔记,复习所学的知识。再者就是想跟这里的学者交流一下,这样才有进步。笔记如若有不完整或者错误的地方,欢迎大家在留言栏提出纠正。

VBS初始及变量

VBS是windows内置脚本,用记事本直接编辑,将文件后缀名改为“vbs”即可运行。
第一个脚本:

dim a
a="Hello,world!!"
msgbox a

其中“msgbox”如python的“”print一样是打印的意思。
变量以dim命名,并且可以用“:”号在命名同时赋值。
如:dim a:4
我们可以用“inputbox”进行输入,达到互动效果

dim namename=inputbox("请输入你的名字。")msgbox "你的名字叫"&name

常量

常量用“const”命名,目的是为了减少代码量以及增加规范。

const a="nihao,china"msgbox a

注释与数学运算

  1. 在每句的开头写入“rem"在或者"’"即可注释掉整行。

如:

dim a,ba=46'a=15151
rem b=78b=77msgbox a,b
  1. 数学的运算符大部分在脚本都能通用。

“*”表示乘法
“**”表示平方
“/”表示除法
“+”纯数字表示加法,字符串表示拼接
a=12+5和a=“12”+"5"意义是不一样的

布尔类型

true表示正确;false表示错误

dim a,ba=15b=12msgbox a>b

输出结果为true,可以用布尔类型判断比较结果。

if判断

常见的if判断语句:
if then……end if
if then……else…… end if
if then ……else if……else……end if end if
例子
1.

dim a,b,c,d
a=inputbox("请输入a的值:")
b=inputbox("请输入b的值:")
c=inputbox("请输入c的值:")d=a*2+b*2
c=int(c)
if c=d then
msgbox "你是对的!!!!"
else
msgbox "你是错的!!!"
end if
dim a
a=inputbox("请输入一个大于50的数字")
a=int(a)
if a>50 then
msgbox "正确"
else if a=50 then
msgbox "不要输入50!!!!"
else
msgbox "错误"
end if
end if
dim num:num=0
for i=0 to 9
num=num+1
if num=5 then
exit for
end if
next
msgbox num

有多少个“if”就要有多少的end if结尾!

select语句实现多条件循环

利用select case +变量实现。看个例子就明白,跟DOS命令的goto很像。

dim a
a=inputbox(“请输入小于4的数字”)
a=int(a)select case a
case 1
msgbox "one"
case 2
msgbox "two"
case 3
msgbox "three"
case else
msgbox "你输入的数字不符合要求"
end select

循环结构

  1. do循环

利用do……exit do……loop循环实现

dim password,ctr
ctr=0
const pass ="123456"do
password=inputbox("请输入密码:")
if password=pass then
msgbox "密码输入成功!"
exit do
else
if ctr=3 then
msgbox "你的输入次数有限,程序将关闭!!!"
exit do
else
ctr=ctr+1
msgbox"密码出错,请重新输入"
end if
end if
loop
  1. for循环
dim count
for count=0 to 10
msgbox count
next

循环嵌套

  1. do循环嵌套while条件语句
dim count
count =0
do while count<11
msgbox count
count=count+1
loop
  1. for循环嵌套if条件语句
dim num:num=0
for i=0 to 9
num=num+1
if num=5 then
exit for
end if
next
msgbox num
  1. 双for嵌套循环
dim i,j,k
for i=1 to 9
for j=1 to 9
k=i*j
msgbox k
next
next

脚本会逐一输出结果。需要注意的是,两个for循环,第一个每完成一次,第二个会完成全部。

数组的定义与应用

数组由()定义,并且从0开始

如定义数组里有十个元素,并对前三个元素进行赋值:

dim name(9)
name(0)=12
name(1)="mylove"
name(2)=5.26
msgbox name(2)

跟变量一样,数组也可以同时被定义调用:

dim name(2),high(2),mark(2)
dim n
for n= 0 to 2
name(n)=inputbox("请输入第"&n+1&"个学生的名字")
high(n)=inputbox("请输入第"&n+1&"个学生的身高")
mark(n)=inputbox("请输入第"&n+1&"个学生的成绩")
next
msgbox name(0)
msgbox high(1)
msgbox mark(2)

此时通过用户输入来实现数组赋值

定义二维数组及应用

二维是指行跟列
如 dim name(1,1)表示定义一个两行两列的二维数组。第一个数字代表行数,第二个代表列数。
其实就是个表格,可以用来收集用户数据
如:
1.

dim name(2),high(2),mark(2)
dim n
for n= 0 to 2
name(n)=inputbox("请输入第"&n+1&"个学生的名字")
high(n)=inputbox("请输入第"&n+1&"个学生的身高")
mark(n)=inputbox("请输入第"&n+1&"个学生的成绩")
next
msgbox name(0)
msgbox high(1)
msgbox mark(2)
dim msg(1,1)
dim i,j
for i=0 to 1for j=0 to 1
dim opt
select case 1
case 0
opt="name"
case 1
opt ="age"
end select
msg(i,j)=inputbox("请输入第"& i+1 &"个人的"& opt)
next
for i=0 to 1
for j= 0 to 1
msgbox msg(i,j)

初识函数

  • 与定义变量差不多,将dim替换成function,最后以end function结束函数的定义。函数内可定义变量,实现更复杂的运算。
    如定义一个函数,需要用户输入名字并且打印一句话。
function fun(name)
name=inputbox("请输入你的名字")
msgbox "吃饭啦!!!!"&name
end function
call fun(name)

用call+函数名调用函数!

定义函数进行互动

dim num1,num2
num1=inputbox("请输入第一个数字")
num2=inputbox("请输入第二个数字")
num1=int(num1)
num2=int(num2)
function fun(num1,num2)
num=num1*num2
msgbox num
end function
call fun(num1,num2)

内建函数不需要定义,直接能调用。可以百度查找,有很多。

如:

dim a
a=now()/time()/date()
msgbox a

子程序

子程序跟函数差不多,定义时将function换成sub。
如:

sub msg(name,age)
msgbox "hello,word"&name
end sub
call msg("xiaohua",14)return msg("xioahua",14)

用VBS脚本运行可执行文件

  • 打开cmd:
set ws=wscript.createobject("wscript.shell")
ws.run"C:\Windows\System32\cmd.exe"

这里的ws.run可换成ws.exec,文件路径最好是绝对路径,就是从盘符到文件名都要写清楚。

当然也可以不用绝对路径,前提是你要打开的文件路径可以在脚本执行路径后面追加。

  • 打开记事本:
set ws=wscript.createobject("wscript.shell")
ws.run"notepad.exe"

总结

多敲代码,多练练。其实就入门而言,我发现很多编程语言都有许多相似之处。如python,php,JavaScript等,入门学的内容其实差不多。要注意分号,冒号,花括号等等符号的使用,熟练日常类和函数的使用。代码敲多了,就会有一种触类旁通的快感。

【web安全学习篇1】VBS脚本基础编写总结相关推荐

  1. Bash脚本编程学习笔记02:脚本基础和bash配置文件

    脚本基础 参考资料:Shell Scripts (Bash Reference Manual) 不严谨地说,编程语言根据代码运行的方式,可以分为两种方式: 编译运行:需要先将人类可识别的代码文件编译成 ...

  2. 全网最全脚本整理,优秀学习范例汇集 —— VBS脚本、BAT脚本(批处理)公开、免费下载

    目录 ▼脚本列表 1.VBS脚本列表及脚本说明 2.BAT批处理脚本列表及脚本说明 ▼脚本下载链接 ◆ 配合<定时执行专家>使用,功能更加强大 ◆ 关于<定时执行专家>的&qu ...

  3. docker学习篇(二)---- 基础篇

    引言 在之前的学习中,我知道了码头工人的三大组件分别是----镜像,容器,仓库,了解了这三个组件也就初步理解了搬运工.所以我学习了这三个组件,并记录下来. 镜像 搬运工在运行一个容器时需要本地存在相对 ...

  4. 风炫安全Web安全学习第二节课 HTML基础

    学习地址:HTML基础 html基础 html表单 html常用标签 前端攻防中常用的一些手法 反射性XSS Dom-based型XSS 存储型XSS 学习的网站:https://www.w3scho ...

  5. 【融职培训】Web前端学习 第3章 JavaScript基础教程9 内置对象

    一.内置对象概述 javascript为我们提供了很多内置对象,这些内置对象为我们提供了很多语言的基本功能.我们之前学过的数组就是JavaScript的内置对象,除了数组我们还应该了解的内置对象有:M ...

  6. 【web安全学习篇2】kali基本命令

    Kali基本命令目录 前言 一.kali2020版需要注意什么? 二.基本命令 1.ls命令(list) 2.mkdir命令(make dir) 3.cd命令(chage dir) 4.alias命令 ...

  7. 【融职培训】Web前端学习 第7章 Vue基础教程4 组件传值

    一.组件传值的三种情况 我们可以把组件之间的数据传递分为三种情况: 父级向子级传递数据 子级向父级传递数据 非父子级传递数据 二.父级向子级传值 父级可以通过属性向自己传递数据,示例代码如下所示: 1 ...

  8. 【融职培训】Web前端学习 第3章 JavaScript基础教程18 BOM概述

    一.概述 <javaScript高级程序设计>这本书讲过: javaScript = ECMAScript + DOM + BOM. DOM:文档对象模型(document对象) BOM: ...

  9. web自动化测试入门篇04——selenium+python基础方法封装

最新文章

  1. OpenGL: 3D坐标到屏幕坐标的转换逻辑(gluProject的实现)(转)
  2. 亲测SQLServer的最大连接数
  3. mysql 多表查询or_MySQL 多表查询
  4. 大数据WEB阶段(八)Tomcat服务器安装与详解、HTTP协议详解
  5. 使用线程池有以下几个目的
  6. 3dmax高版本转低版本插件_视频编辑干货资料:低版本打开高版本pr文件
  7. PostgreSQL类似Oracle MERGE功能的实现
  8. git下载、安装、配置与简单应用(git上路之始)
  9. forrtl: error (200): program aborting due to control-C event
  10. 计算机技术在学前教育应用与搜索,信息技术在学前教育教学活动中的应用原稿(资料4)...
  11. DeepFool: a simple and accurate method to fool deep neural networks
  12. 无人机DLG生产作业流程
  13. 你的缺点是什么?资深HR教你套路面试官
  14. 微信新表情真的太骚了!!
  15. 基于Docker的PaaS平台建设实践
  16. loadrunner 12 操作教程报告
  17. 谈下我曾经做过的一个心理健康管理系统
  18. android 开发过程中涉及到的清除缓存操作
  19. 谷歌阻止苹果,谁来阻止谷歌
  20. 北京中医药大学计算机应用基础第三次作业,北京中医药大学远程教育 药用植物学 作业1.doc...

热门文章

  1. Vue 键盘事件(keyup、keydown)
  2. 滴水三期:day16.2-结构体数组赋值
  3. 全面认识MOS管,一篇文章就够了
  4. Unity游戏快速制作特效
  5. JQuery序列化和反序列化
  6. LWN:万维网之外的选择!
  7. 2015华为南研所校园招聘笔试面试经历
  8. Prometheus(3)Prometheus界面概述、监控服务功能实现
  9. 汉语属于哪个语系_汉语语族的所属语系
  10. Linux--Ubuntu Tweak