信息安全之脚本编写(适合入门)

在接触脚本之前,我们要先克服我们心里的障碍。新手时,我们会了sql注入,xss等原理,会了许多工具的使用,
同时我们也可以对网站进行一些简单的尝试,但是每当一说脚本时,我们都会觉得好高级,好难的样子。这是我们首先需要克服的。
其实脚本的编写没有那么难,当你尝试过后,就会发现一个漏洞,重要的是漏洞的原理,如何利用,当你理解后,脚本就会很顺利的编写出来

编写脚本之前我们需要准备什么

相信对于很多新手来说,都比较好奇我的语言基础差可以编写吗,我要达到什么程度才可以编写脚本。这里我将我的经验分享给大家:

1.语言基础差也可以编写脚本的。
2.只要你能认识到基础的语法,结构,就可以开始编写了。
当然你编写的速度和质量可能不如别人的,但是总是要不断尝试才能编写的更
好吧。对语言学习不是很多的,遇到自己处理不了的,都去查一查解决办法,
总是能成功的,同样也在不断的练习中加强了自己的语言的基础学习

编写脚本最重要的是什么

要解决一个问题,我们首先要明白这个问题的原理是什么,然后再去解决。也就是说,对于一个漏洞你得明白他的原理,然后将脚本当作实现他的工具。
可能解释的比较抽象,下面我通过举例来说明

尝试编写脚本

这里我以攻防世界web题get_post这道题举例,请添加图片描述

访问url,题目告诉我们要上传一个a=1的变量,相信大家不用编写脚本都可以写这道题。
(这里以python为例)既然要用脚本,那么我们首先要想到应该用什么上传对吧。requests库中的get函数,如下:

import requests
url = "http://61.147.171.105:53163/?a=1"
result = requests.get(url)#构造请求
result.encoding=result.apparent_encoding#这个是为了得到的内容不会乱码
print(result.text)#输出我们的结果,因为得到的是html,要先转化为文档输出。

这里我们就完成了一个简单的脚本,得到结果:
请添加图片描述
这里可以看到我们还要在刚刚的基础上用post上传一个b=2的变量
于是我们在刚刚脚本的上修改:

import requests
url = "http://61.147.171.105:53163/?a=1"
requ = requests.session()#该函数是保持一个会话
#因为是继续上传,所以两次上传必须保持是同一个cookie
result = requ.get(url)
data = {
    "b" : 2
}#因为我们要用post上传数据,再根据post的用法,将数据放在data中
result2 = requ.post(url,data=data)#使用post上传
result2.encoding=result2.apparent_encoding
print(result2.text)#将结果输出

请添加图片描述

到这里我们就完成了这道题的脚本的编写,你是不是发现原来编写脚本并不是那么难,对于新手来说,也是完全可以上手的,只不过在函数的使用上可能会比较麻烦,但是可以通过查资料完成,同样你下次再编写的时候就会知道该如何。

会了简单脚本又该如何更近一步呢

看完上面相信你已经知道简单的脚本怎么编写了,那么对于难一点的题目我们应该怎么办呢
这里我们还是要首先摆脱一个误区:
不是脚本的好坏决定结果,而是原理的理解决定结果
当我们拿到一个漏洞,第一步是去分析漏洞原理,我们应该怎么利用。只有知道怎么利用,我们才能使用工具或者编写脚本。
比如在sql盲注时,原理是我们注入时如果结果正确就会返回正常。那么一个一个试是不是很麻烦,于是我们通过循环先注入,然后通过返回状态判断,比如:

if response.status_code != 200:
                    self.result.status = False
                    return

又或者sql延迟注入时,我们需要通过返回结果的时间来判断,这个时候就需要来找到能够判断时间的函数time。
总结:综上,就是我们需要对漏洞原理有一个深刻的理解,然后掌握相关的函数,就可以写出来复杂的脚本了

新手可以从这些库入手

requests:里面包含了get请求,post请求,ression()保持会话等
lxml的etree:可以将text转化为html,利于对一些要在页面中查询信息的
可以通过xpath来进行路径的搜索
然后再就是一些函数的使用,主要是明白函数的类型,处理对象的数据结构,

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

&阿权&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值