web编程

web编程不是说用python做web开发,而是用python与web交互。常用的模块有urlib,urlib2,这是python内置的模块。

同时,还有基于urlib的第三方库,比如requests, BeautifulSoup,这里我们主要用requests举例,后期介绍爬虫的时候会详细说一下这些库/函数,现在主要是带大家先了解web交互这一块,不然等会儿写代码没法写

准备条件

需要用到的测试网站

httpbin:http://httpbin.org

A simple HTTP Request & Response Service.

封神台在线靶场:https://hack.zkaq.cn/battle

测试靶场

requests库安装

这是python的一个第三方库,用于处理URL资源。第三方,言外之意是python没有内置,需要我们手动安装。

pip3 install request

基本请求方式


GET请求

最基本请求

带参数的GET请求

params:向URL传参

headers:自定义请求头

cookies:跳过登陆页面

还是用我们老朋友:掌控安全旗下封神台靶场做演示,使用携带cookies的方式跳过登陆。

1.用burp或者cookie插件先获取cookie2.因为登陆成功右上角就会变成"个人中心",所以用这个作为判断条件

如果上边这些代码执行结果全都是200/TURE的话,就证明你已经掌握GET请求了。废话不多说,看下POST请求。

一定要跟着敲一遍啊师傅们,不然越看越懵逼,而且马上就要自己写脚本了,连最基本的web请求都不会,真没法写!

如何获取cookie

简述下获取cookie的过程,担心有些小白不太会,老师傅绕路:(这里以burp举例)

1、在这里点击登录

2、输入账号密码后,挂上burp代理,开启拦截,然后登录

3、这个时候因为burp的拦截开启着呢,所以需要我们手动点forward给数据包放出去

4、浏览器一边操作,burp一边forward,直到burp里有cookie出现

同时,这个时候复制cookie,或者保存数据包,后者等下去HTTP history里看都可以,但是这里要再点一下forward,看看这个cookie是不是能登录成功。

点一下forward出现这个界面,成了!

因为不知道朋友们基础都怎么样,反正我记着最开始看一些师傅的教程的时候,我就不知道怎么获取cookie,所以就简单提一下吧。

当然,python本身也是可以获取cookie的,但是再说多了我怕劝退,还是用咱们最熟悉的方式,先这么获取着吧。

Tips:平时做测试的时候,可以故意输错密码,向上边这样一点点分析请求过程。


POST请求

POST请求和GET的用法完全一致,区别就是POST请求会带有一个data参数


Response响应


环境准备

这部分主要是先搭建好后期可能会用的服务,主要就是配置下虚拟机,安装一些比如docker、web服务、ssh服务等等,方便后期使用。

虚拟机配置

简单说下桥接NAT的区别。

学过网络的应该知道NAT就是转发的意思,一般代理服务器都是基于这个功能,所以NAT的上网方式就是把本机当作代理服务器;桥接就是相当于把虚拟机通过无线网卡连在你当前网络的路由器上。

如果这段你听懂了就跳过吧,没听懂我详细说下:

NAT

桥接

所以我们需要把虚拟机配置成桥接模式,然后设置dhcp模式。具体自己百度吧,不同系统不太一样。


SSH

这东西是远程连接的一种,我们需要在客户端有ssh连接工具服务端有ssh服务,就是这么简单点事。

服务端

只需要百度“centos安装ssh服务”、“Ubuntu安装ssh服务”就可以了。

确实需要一些配置操作,教程里一般都会提到的,放心。

PS:我直接下的CentOS,它直接ssh服务安装好,配置好了,各位如果还没安系统,可以考虑CentOS。

客户端

客户端我不推荐你们安装xshell什么的,太麻烦了。

  1. 苹果电脑的话,用自带的Terminal;

  2. Linux的话,用自带的Terminal;

  3. Windows的话,用自带的Terminal,Windows自带的那个叫Dos是吧,哈哈,新出了个Terminal不会真有人不知道吧,去Microsoft商店搜索Terminal,下载一个就可以了。

Terminal干嘛用的?里边有ssh啊,直接在里边连不香吗?

这里给Windows用户一个建议,你连虚拟机都不用安,同样是微软商店搜索“Ubuntu”、“Kali”、“CentOS”,这些就是名为子系统的男人,在Terminal里能直接用,比虚拟机香多了。

当然了,具体的百度吧。这些网上教程太多了,写得也都很好,我就不想写了。关键字“Windows子系统”

连接

  1. 去虚拟机看一下,输入ps -e |grep ssh,看看能不能输出带有sshd的字样,带d的就表示是服务端;

  2. 还是虚拟机里,输入ifconfig看看IP是多少,比如我的就是172.10.20.12

  3. 去物理机,打开Terminal,输入ssh root@172.10.20.12,然后根据提示输入密码就完了。密码就是你虚拟机的登录密码

  4. 这样就不用每次都在虚拟机里操作了,爽吧?


docker

docker用于日后搭靶场,或者使用docker安装其他东西,都要快一些。跟着我一起操作,就在Terminal里,谁都不许回虚拟机看图形界面!

安装

我是CentOS7,可以使用国内的daocloud安,命令为:

curl -sSL https://get.daocloud.io/docker | sh

然后等它安完就可以了。其余系统百度吧兄弟们哈哈,这种东西我真的不想写,因为教程太多,其他人写的也都太好了!

比如菜鸟教程:https://www.runoob.com/docker/docker-tutorial.html

使用

比如后期想要安一个sqli-labs,直接一条命令:

docker pull c0ny1/sqli-labs

然后run一下就完了。以后用到会介绍,先不用着急哈。


Web服务

无非就是数据库、中间件、后端环境,通常为MySQL、Apache、PHP嘛。

两种安装方式你们选:

  1. 直接嫖一个建站系统,我习惯用宝塔,这种可以一键安装所有服务;

  2. 挨个安装!

我选直接宝塔CMS了:

使用 SSH 连接工具连接到您的 Linux 服务器后,根据系统执行相应命令开始安装(大约2分钟完成面板安装):

Centos安装脚本

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

Ubuntu/Deepin安装脚本

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

Debian安装脚本

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh

Fedora安装脚本

wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

注意:必须为没装过其它环境如Apache/Nginx/php/MySQL的新系统,推荐使用centos 8.X的系统安装宝塔面板

这样网站需要的服务我们就搭完了,以后可以自己搭测试环境了。这里有几点说一下吧,我之前刚入门的时候特别不懂的地方:

  1. LAMP是什么?L(Linux), A(Apache), M(MySQL), P(PHP);

  2. 没有这四(三)个东西,能搭网站吗?不能!

  3. 不做交互,只是一个静态web,需要全部安装吗?不需要,安一个Apache或者Nginx之类的就行了。


写在最后

马上就要开始自己动手写脚本,不知道师傅们心情怎么样?

反正我是蛮激动的,我打算自己做一个渗透测试网站,后台就用python写,大家有兴趣和我一起吗?

其实我也是python小白,之前也没用python搞过安全这一块,大家不用觉得有压力。

看这个教程,只需要你掌握python基础语法,然后熟悉渗透测试的常见漏洞就可以了。

我遇到高阶操作也是看网课看教程这样子,并且我都会在文章中说的,大家不要害怕python安全。

就比如这一篇,就是我在学后边内容发现requests库需要学一波,但是学完又发现,貌似又用不到那么多,只是会简单的请求和响应就可以了。

所以就出了这一个过渡篇。

同时又看到后边很多测试可能需要自己搭环境,比如漏洞检测,就需要自己搭一个靶场或者自己写一个网站,比如绕狗,就需要自己安一个狗,这样子。

总之就是告诉大家,我不是python大佬,我不会降维打击的,大家不要怕,不敢写,这样永远都不可能进步了。

References

[1] https://www.cnblogs.com/Booker808-java/p/7822763.html

[2]https://blog.csdn.net/Eastmount/article/details/108540749

[3]https://blog.csdn.net/nilvya/article/details/103674999

[4]https://www.cnblogs.com/kermitjam/p/10863916.html#_label3

小小红包,大家图个开心,红包金额取决于底部广告的点击率哦~

OK,我是续命,喜欢我欢迎balabala,白白~

mysql跳过安全_【Python安全攻防过渡篇:web编程和环境搭建】相关推荐

  1. centos python_【Python安全攻防过渡篇:web编程和环境搭建】

    web编程 web编程不是说用python做web开发,而是用python与web交互.常用的模块有urlib,urlib2,这是python内置的模块. 同时,还有基于urlib的第三方库,比如re ...

  2. Python学习笔记 (1)Hello World(环境搭建+输出Hello World!)...

    随想 高考发挥失常.科三遇火车发挥失常,各种不顺--突然发现假期都快没了,才想起高考前想象的这个假期要做的一堆事,现在来多完成一件吧. 这几篇博客仅只是我的学习笔记,凑合看吧.我这个python小白看 ...

  3. -i 可以编译添加多个_大咖说 | 基于 NXP i.MX8 eIQ 环境搭建和编译

    一.前言 NXP 针对 Machine Learning ( ML ) 创建了 eIQ 工具,以方便开发者在 i.MX 系列设备上开发 ML 相关应用. 本篇将会分两个章节,一章节介绍 eIQ 软件, ...

  4. 软件开发向大数据开发过渡_如何将职业过渡到Web开发

    软件开发向大数据开发过渡 Over the past ten years, there has been an explosion of interest in web development, an ...

  5. 用Python在Minecraft(我的世界)中编程——开发环境搭建

    为了教十岁的儿子Python编程,我研究了下Minecraft中的编程,搭建环境是第一步,可惜网上的资料不是很多,特此记录下,以供有同样需求的家长们参考: 准备工作 安装Python,要2.7版本的, ...

  6. Web自动化测试 —— 测试环境搭建 (Selenium+Python)及视频操作

    一.什么样项目适合做web自动化 1.软件需求不会频繁的变更. 2.项目周期比较长. 3.自动化的脚本能够重复利用. 介入点:第一个版本的核心功能确认以后,系统测试. 自动化的实施过程: 1.可行性分 ...

  7. mysql跳过安全_几年了,作为一个码农终于把MySQL日记看懂了!

    一.写作背景 大家都清楚,日志是 MySQL数据库的重要组成部分,记录着数据库运行期间各种状态信息.MySQL日志主要包括错误日志.查询日志.慢查询日志.二进制日志(binlog)和事务日志(redo ...

  8. python win10 捕获 弹出窗口_[python爬虫] Selenium高级篇之窗口移动、弹出对话框自登录...

    在我们使用Selenium Python制作自动爬虫和网页自动测试的时候,通常会遇到弹出新的窗体或对话框的时候,此时你捕获的窗体已经被打断,从而干扰你的爬虫. 那怎么解决这个问题呢? 本篇文章主要记录 ...

  9. MySQL代做题_转行数据分析第三篇:mysql查询入门练习题

    这篇练习题是我在学sql入门的时候做的,应该算是在网上能找到的习题里最基础的一篇,非常适合新手练习,如果你接触sql不超过半个月,建议可以看一下<sql必知必会>或<mysql必知必 ...

最新文章

  1. Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
  2. 计算机一直在启动修复怎么关机,电脑开机一直要启动修复,自动修复好久开不了机,然后进去系统恢复选?...
  3. 停车30分钟内不收费,程序员远程操控挪车,实现自动免费停车...
  4. 接口自动化- 基于 Python
  5. python生成json_如何将Python数组转为Json格式数据并存储?
  6. 国内程序员工资是不是被高估了?为什么美国程序员工作少工资高?
  7. 求浮点数的幂的精确值
  8. selenium-webdriver——如何在启动firefox时加载扩展
  9. js+JQuery实现返回顶部功能
  10. UITableView优化之按需加载
  11. 功能选中jquery实现全选反选功能
  12. 使用Canvas基于手势可以使树秋千
  13. 深层网络搜索核心技术研讨
  14. python写刷课脚本_python opencv 知到 刷课 脚本
  15. C语言--三次方程数值求解
  16. C语言自定义类型——位段
  17. 微信小程序开发的基本流程
  18. 基础学习——MySQL基础
  19. Android编程入门-第1天
  20. ZedBoard 最小系统构建 (一)-硬件结构搭建

热门文章

  1. 黑魂3修改魂后进服务器,黑暗之魂3怎么改存档位置 黑魂3修改存档位置教程
  2. 又一知名云盘翻车:“免费不限量”变收费,用户被骗 5 年!
  3. 一文掌握软件项目成本预算、估算的方法和成本控制的秘籍
  4. imac 使用 linux终端,MAC 终端(命令行)剪切版的使用
  5. 乐视TCL战略成果发布会,这数据吓到友商了!
  6. 《啊哈!算法》知识点汇总
  7. MacOS开发环境搭建
  8. linux中的readlink命令
  9. 三年高工,不敌一年后浪,高不成低不就…
  10. EAF .NET数据库访问组件