首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python web安全_python ssh 远程执行命令

python web安全_python ssh 远程执行命令

作者头像
Java架构师必看
发布2022-07-25 14:15:48
发布2022-07-25 14:15:48
2.5K0
举报
文章被收录于专栏:Java架构师必看Java架构师必看

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说python web安全_python ssh 远程执行命令,希望能够帮助大家进步!!!

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没有内置,需要我们手动安装。

安装

导入

基本请求方式

GET请求
最基本请求
带参数的GET请求

params:向URL传参

**headers:**自定义请求头

**cookies:**跳过登陆页面

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

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

如果上边这些代码执行结果全都是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安装脚本 此代码由Java架构师必看网-架构君整理 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安装脚本 此代码由Java架构师必看网-架构君整理 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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-232,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • web编程
    • 准备条件
      • 需要用到的测试网站
      • requests库安装
      • 基本请求方式
    • GET请求
      • 最基本请求
      • 带参数的GET请求
      • 如何获取cookie
    • POST请求
    • Response响应
  • 环境准备
    • 虚拟机配置
    • SSH
    • docker
    • Web服务
  • 写在最后
  • References
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档