【web安全学习篇1】VBS脚本基础编写总结
【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
注释与数学运算
- 在每句的开头写入“rem"在或者"’"即可注释掉整行。
如:
dim a,ba=46'a=15151
rem b=78b=77msgbox a,b
- 数学的运算符大部分在脚本都能通用。
“*”表示乘法
“**”表示平方
“/”表示除法
“+”纯数字表示加法,字符串表示拼接
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
循环结构
- 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
- for循环
dim count
for count=0 to 10
msgbox count
next
循环嵌套
- do循环嵌套while条件语句
dim count
count =0
do while count<11
msgbox count
count=count+1
loop
- 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
- 双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脚本基础编写总结相关推荐
- Bash脚本编程学习笔记02:脚本基础和bash配置文件
脚本基础 参考资料:Shell Scripts (Bash Reference Manual) 不严谨地说,编程语言根据代码运行的方式,可以分为两种方式: 编译运行:需要先将人类可识别的代码文件编译成 ...
- 全网最全脚本整理,优秀学习范例汇集 —— VBS脚本、BAT脚本(批处理)公开、免费下载
目录 ▼脚本列表 1.VBS脚本列表及脚本说明 2.BAT批处理脚本列表及脚本说明 ▼脚本下载链接 ◆ 配合<定时执行专家>使用,功能更加强大 ◆ 关于<定时执行专家>的&qu ...
- docker学习篇(二)---- 基础篇
引言 在之前的学习中,我知道了码头工人的三大组件分别是----镜像,容器,仓库,了解了这三个组件也就初步理解了搬运工.所以我学习了这三个组件,并记录下来. 镜像 搬运工在运行一个容器时需要本地存在相对 ...
- 风炫安全Web安全学习第二节课 HTML基础
学习地址:HTML基础 html基础 html表单 html常用标签 前端攻防中常用的一些手法 反射性XSS Dom-based型XSS 存储型XSS 学习的网站:https://www.w3scho ...
- 【融职培训】Web前端学习 第3章 JavaScript基础教程9 内置对象
一.内置对象概述 javascript为我们提供了很多内置对象,这些内置对象为我们提供了很多语言的基本功能.我们之前学过的数组就是JavaScript的内置对象,除了数组我们还应该了解的内置对象有:M ...
- 【web安全学习篇2】kali基本命令
Kali基本命令目录 前言 一.kali2020版需要注意什么? 二.基本命令 1.ls命令(list) 2.mkdir命令(make dir) 3.cd命令(chage dir) 4.alias命令 ...
- 【融职培训】Web前端学习 第7章 Vue基础教程4 组件传值
一.组件传值的三种情况 我们可以把组件之间的数据传递分为三种情况: 父级向子级传递数据 子级向父级传递数据 非父子级传递数据 二.父级向子级传值 父级可以通过属性向自己传递数据,示例代码如下所示: 1 ...
- 【融职培训】Web前端学习 第3章 JavaScript基础教程18 BOM概述
一.概述 <javaScript高级程序设计>这本书讲过: javaScript = ECMAScript + DOM + BOM. DOM:文档对象模型(document对象) BOM: ...
- web自动化测试入门篇04——selenium+python基础方法封装
最新文章
- OpenGL: 3D坐标到屏幕坐标的转换逻辑(gluProject的实现)(转)
- 亲测SQLServer的最大连接数
- mysql 多表查询or_MySQL 多表查询
- 大数据WEB阶段(八)Tomcat服务器安装与详解、HTTP协议详解
- 使用线程池有以下几个目的
- 3dmax高版本转低版本插件_视频编辑干货资料:低版本打开高版本pr文件
- PostgreSQL类似Oracle MERGE功能的实现
- git下载、安装、配置与简单应用(git上路之始)
- forrtl: error (200): program aborting due to control-C event
- 计算机技术在学前教育应用与搜索,信息技术在学前教育教学活动中的应用原稿(资料4)...
- DeepFool: a simple and accurate method to fool deep neural networks
- 无人机DLG生产作业流程
- 你的缺点是什么?资深HR教你套路面试官
- 微信新表情真的太骚了!!
- 基于Docker的PaaS平台建设实践
- loadrunner 12 操作教程报告
- 谈下我曾经做过的一个心理健康管理系统
- android 开发过程中涉及到的清除缓存操作
- 谷歌阻止苹果,谁来阻止谷歌
- 北京中医药大学计算机应用基础第三次作业,北京中医药大学远程教育 药用植物学 作业1.doc...