web AWD 攻与防

CTF线下赛主要考察代码审计能力及运维能力,代码审计发现漏洞,python写利用漏洞,运维发现可疑攻击目标,异常流量,异常权限,重要业务备份与还原。用运维的知识加固系统与业务。当被人攻击以后,不要慌。分出一个人查流量,另一个人继续审计代码,挖掘漏洞才是最重要的攻击源。实在发现不了漏洞时,改变策略,把精力重心移到流量上来。

web的漏洞利用

你已经通过代码审计定位到了这个漏洞,要去利用它。

一般都是通过特定的URL去触发这个漏洞。所有的web漏洞都是这样子的。

这个时候,怎么用python去写呢?

比如挖出了一个web利用摄像头的漏洞:发一个特定的URL,通过URL的返回,在它的cookies里面能够查到它的一个明文账号密码。

构造这个特殊的URL

怎么知道这个特殊的URL是什么呢?这需要在挖漏洞里下功夫了,这里是一个文件包含漏洞,这个地址把账号密码传到一个文件里面做认证,把认证的结果又返回给这个URL。

摄像头页面是这个公司写的,而做密码验证的是另一个公司写的。摄像头公司的人以为把账号密码发给另一个公司就可以做验证了,而另一个公司不仅把密码验证了,还把真正的密码给返回给摄像头的公司。在两个公司的交互过程中,漏洞就发生了。我们知道这个大前提,再配合挖掘漏洞的知识,这个特殊的URL就被我们构造出来了。

大部分都是怎么构造一个request请求包,解析返回包。

细节代码需要自己去收集攻击框架。比如,全场开火脚本:exploit_all.py

token(自己队伍的标识):你打了别人,拿到了flag,主办方怎么知道是谁提交的flag呢?把flag和token做一个运算。

全场攻击的host和port从哪里来?

读取targets文件来的,文件里面的格式为 IP:端口

比赛环境

linux运维

运维流程-SSH

如果主办方没有给私钥,尽量尝试配公私钥登录

禁止密码登录并配置公私钥登录(没绝对把握,仅把密码改了就可以,不用配置禁止密码登录,修改密码用passwd 用户名)

密钥登录

编辑sshd_config文件

vi /etc/ssh/sshd_config

禁用密码验证

PasswordAuthentication no

启用密钥验证

RSAAuthentication yes

PubkeyAuthentication yes

指定公钥数据库文件

AuthorsizedKeysFile .ssh/authorized_keys

也可以这样改

重启SSH服务前建议多保留一个会话以防不测。

linux很难出现远程溢出漏洞,很少有人掌握这个漏洞,非常少见。能进来的大多数要靠暴力猜解。

因为我们现实中,大多数使用一个SSH管理工具(SecureCRT)的一个小软件来连接linux业务环境进行工作的。

如果控了他windows机器,通过对windows攻击(如木马)就可以拿到linux业务管理环境的密码。

我们如何防止木马拿到密码呢?这个时候就可以配公私钥,用私钥去登录。你监听吧,咱不输入密码了。嘿嘿。

主机右键--去掉其他钩,留下私钥认证--加载私钥文件。这种登录方式是非常安全的。如果你使用这种方式登录,别人不可能拿到你的私钥的。私钥是与本地绑定的,送给他都没关系,不要怕。

细节可以直接搜索: SSH公钥登录

私钥长什么样子的呢?来,亲。你慢慢去猜解密码吧。

公钥批量写入

nmap扫描22

hydra SSH爆破 -user 用户名文件 密码文件 -p

字典生成工具 crunch

web源码备份

crontab -l 查看计划任务 crontab -e 编辑

ctl+o保存 ctl+x退出

人家给你加一个网马,加一个哈希值,你知道有网马但是找不到。

1.初始化 2.对比,哪些文件是新增的

数据库备份

虚拟机的快照是直接把内存 dump下来了

不要把3306留在网上,不要远程去维护,关掉远程维护的配置

不管用VPN也要其他的也罢,只要你的数据库留在网上,端口爆出来。VPN只是传输安全,但是人家用你的密码去登陆也是一样的。你知道VPN相对安全,但你不知道自己的电脑是否有问题。另外,不管是VPN还是什么,它们都会被别人远程爆破掉。

网线拔掉,电源关掉的电脑最安全,其他的地方你不能这样做,但是数据库你可以这样做,没有任何远程管理的需求。

数据库降权

你的数据库没有开远程,但是别人通过其他端口进入了你的系统,把你的数据库给爆出来了,而你压根就用不上那么高的权限,运行数据库的时候,难道要给它一个root权限吗?这个时候就要降权,把账号也绑定到只能本地登陆。这个时候,别人怎么样都无法通过远程来访问你的数据库了。

这里的dog是在调戏别人,别人在攻击你的数据库时会扫描数据库的名字。他看见你的数据库名字是dog,密码是123456,也进不来,只能本地登陆。

本地:不是说到机房,是不把数据库的端口给外面提供。在虚拟机可以登陆数据库,而母体机无法登陆数据库。通过SSH连到虚拟机里面,再去登陆数据库。也算是本地登陆。假设绑定的为linux登陆数据库,那么我们用SSH远程连接linux就可以了。而连接linux的又是公私钥的方式,还是本地绑定的。你种木马也没用,爆破更不可能。完美。

linux服务器权限管理

权限配置

对于非必须可写的目录

权限设置755,拥有者设为非www-data用户;从而防止文件被篡改/删除

对于必须可写的目录

根据服务器类型,上一个.htaccess,或者修改nginx的目录配置文件,去除此路径的脚本执行权限

防御脚本 都是用python写的 python做安全运维很有优势

waf

文件监控 watch python 脚本

监控到别人上传的Helloworld文件

我们发现这时,如果把监控记录重定向文件里面,就变成监控日志了。保护好这个监控日志。

通过一句话给自己一个apache的权限,因为别人在攻克你服务器的时候,拿到的权限也是apache的权限,自己把自己的程序杀掉。如果你用比较低的权限去运维,你连别人运行的木马都杀不掉。

这也是为什么,你用的windows系统中,删除不了文件的原因,你的权限不够。最高的权限是system权限,不是admin。

网络拓扑扫描

如果你是防御的,你要查看一下内网中其他机器的防御机制;如果你是做攻击的,你要查看一下其他机器的薄弱点。

如果你队友的机器很薄弱,可以屏蔽了他,别人从他那里下手无法攻击到你这边。攻击者会寻找最薄弱的地方,当成一个跳板机来对你下手。

为什么外网端口强,内网就不强了呢?有些端口会开放到外网上,有些端口会开放到内网中。如内部的FTP,SMB等。外部端口一般漏洞少,内部端口往往存在大量漏洞。

python 重定向 ctf_3.CTF——python利用工具相关推荐

  1. python重定向_在Python中使用urlopen()防止“隐藏”重定向

    我正在使用BeautifulSoup进行网页抓取,并且在使用urlopen时遇到特定类型网站的问题.网站上的每个商品都有其独特的页面,并且商品具有不同的格式(例如:500 mL,1L,2L等). 当我 ...

  2. python phpstudy_GitHub - Writeup007/phpStudyBackDoor: phpStudy后门检测与利用工具,Python脚本,可一键 GetShell。...

    phpStudyBackDoor phpStudy后门检测与利用工具,Python脚本,可一键 GetShell. 简述 2019年9月20日,网上传出 phpStudy 软件存在后门,随后作者立即发 ...

  3. python编写sql注入工具-利用Python实现SQL注入 - Python黑客编程入门系列 - 8

    {getUnitName} {getLessonName} 敬请期待 免费 {getTaskName} 剩余观看时长:{watchLimitRemaining} 回放 {activityStartTi ...

  4. python中文文档-Python语言、主要工具与类库中文文档

    Python是Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python 提供了非常完善的基础代码库,覆盖了网络.文件.GUI.数据库.文本等大量 ...

  5. python代码翻译-10 行代码,Python 教你自制屏幕翻译工具,有逼格!!

    原标题:10 行代码,Python 教你自制屏幕翻译工具,有逼格!! 1. 场景 大家如果平常遇到不认识的英文,相信大部分的人都会复制内容后,使用翻译软件,或者拷贝到网站上去执行翻译. 当然,对于 I ...

  6. python自定义函数画图_利用Python绘图和可视化(长文慎入)

    Python有许多可视化工具,但是我主要讲解matplotlib(http://matplotlib.sourceforge.net).此外,还可以利用诸如d3.js(http://d3js.org/ ...

  7. 适合pythonpandas的软件_适合 Python 入门的 8 款强大工具!

    原标题:适合 Python 入门的 8 款强大工具! 作者 | codeavail.com 译者 | 弯月,责编 | 屠敏 以下为译文: Python是一种开源的编程语言,可用于Web编程.数据科学. ...

  8. python基于web可视化_独家 | 基于Python实现交互式数据可视化的工具(用于Web)

    转自:数据派ID:datapi 作者:Alark Joshi 翻译:陈雨琳 校对:吴金笛 本文2200字,建议阅读8分钟. 本文将介绍实现数据可视化的软件包. 这学期(2018学年春季学期)我教授了一 ...

  9. python交互式数据可视化_基于Python实现交互式数据可视化的工具,你用过几种?...

    作者:Alark Joshi 翻译:陈雨琳 来源:数据派THU(ID:DatapiTHU) 我教授了一门关于数据可视化的数据科学硕士课程.我们的数据科学硕士项目是一个为期15个月的强化项目,这个项目已 ...

最新文章

  1. 2016 湖南省省赛B题《有向无环图》
  2. 牛客多校3 - Sort the Strings Revision(笛卡尔树+分治)
  3. ORA-29339错误解决办法
  4. React.js开发生态系统概览 [译-转]
  5. 设置Spring 3开发环境
  6. Java中getResource()的用法
  7. 选择用户-显示已选用户
  8. 3天,我用Python手撕了一个深度学习框架!
  9. C# 使用同余代换简化多个大数相乘取模运算
  10. android模拟点击webview,的Android的WebView点击模拟
  11. 利用jmeter对mysql数据库进行压力测试
  12. 传京东副总裁蒉莺春或将接管POP业务-搜狐IT
  13. 什么是NVMe驱动器,您应该购买一个吗?
  14. 电子电路绘图与仿真软件
  15. 惠普暗影精灵2 Mojave(几乎完美黑苹果)
  16. IBatis开发指南-夏昕
  17. 小米笔记本PRO BIOS忘记密码后重置教程
  18. App extension实战 - NetworkExtension 讲解连接并捕获packet
  19. 【js获取当天时间0点和23点59分59秒】
  20. 如何用PS去掉照片中的路人

热门文章

  1. vue滚动加载插件vue-infinite-scroll
  2. Git图形化管理工具
  3. Linux——安装FTP服务器
  4. Java基础之写文件——缓冲区中的多条记录(PrimesToFile3)
  5. 到现在了还不会Webpack?我帮你总结好了
  6. LeetCode算法题-Repeated String Match(Java实现)
  7. MySQL5.7多源复制的实验
  8. Android Wifi简单的梳理【转】
  9. Android底部导航栏实现(一)之BottomNavigationBar
  10. MySQL两千万数据优化迁移