《Python 黑帽子》第四章代码
https://gitee.com/changjiangtao/codes/9wmgkzi418tvj0uf3c7ye19
《网络攻防技术》第十一、十二章学习
web应用体系结构
- 浏览器
- Web服务器
- Web应用程序
- 数据库
- 传输协议
web应用安全威胁
- 针对浏览器和终端用户的Web浏览器安全威胁
- 针对传输网络的网络协议安全威胁
- 系统层安全威胁
- Web服务器软件安全威胁
- Web应用程序安全威胁
- Web数据安全威胁
攻击web服务器软件的方式:
- 数据驱动的远程代码执行安全漏洞
- 服务器功能扩展模块漏洞
- 样本文件安全漏洞
- 源代码泄露
- 资源解析漏洞
攻击web应用程序
- 针对认证机制的攻击
- 授权机制的攻击
- 客户端攻击
- 命令执行攻击
- 信息暴露
- 逻辑攻击
攻击web数据内容
- 安全敏感数据泄露
- 网站篡改
- 不良信息内容上传
SQL注入的攻击步骤和过程
- 发现SQL注入点
- 判断后台数据库类型
- 后台数据库中管理员用户口令猜解
- 上传ASP后门,得到默认账户权限
- 本地权限提升
- 利用数据库扩展存储过程执行Shell命令
web浏览器软件的安全困境三要素:复杂性、可扩展性、连通性方面。
网页挂马策略:
- 内嵌HTML标签
- 恶意Script脚本
- 内嵌对象链接
- ARP欺骗挂马
视频学习
bbqsql
BBQSQL是一种用Pyhthon写的SQL盲注框架。当发动狡猾的SQL注入漏洞攻击时,它将非常有用。BBQSQL也是半自动工具,允许许多难以触发的SQL注入变得用户化。该工具是与数据库无关的,其用法非常灵活。它也自带一个直观的UI用户界面,使设置攻击更容易。Python Gevent也很给力,使BBQSQL非常快速。
SQL盲注可能很难被利用。作为可用工具它们很高效,但当要写一些自定义的东西时它们则很难搞定了。这耗时又繁琐的。BBQSQL具有以下特征:
注意,BBQSQL最重要的是它不关心数据或数据库,而大多数SQL注入工具是要具体的数据库或语言建立的。
利用SQL盲注漏洞
半自动
与数据库无关
多功能
利用两种搜索技术(二元搜索和按频次搜索)
并发的HTTP请求
配置导入/导出
自定义的Hooks
高速
DBPwAudit
DBPwAudit是一个数据库用户名和密码枚举工具
HexorBase
HexorBase是一个数据库应用程序,设计用于管理和审核多个数据库服务器,它能够对常见的数据库服务器(MySQL,SQLite,Microsoft SQL Server,Oracle,PostgreSQL)执行SQL查询和暴力攻击。HexorBase允许通过代理进行数据包路由,甚至可以使用metasploit转向滑动来与远程无法访问的服务器进行通信,这些服务器隐藏在本地子网中。
jSQL
jSQL是一款轻量级安全测试工具,可以检测SQL注入漏洞。它跨平台(Windows, Linux, Mac OS X, Solaris)、开源且免费。
MDBTools
包括一下几个子工具,具体情况具体分析使用:
- mdb-export
- mdb-hexdump
- mdb-parsecsv
- mdb-sql
- mdb-tables
Oracle Scanner
该工具是一个Java开发的Oracle评估工具,它是基于插件结构的,当前有两个插件可以做:
- Sid列举
- 口令测试
- 列举Oracle版本
- 列举账号角色
- 列举账号特权
- 列举账号哈希
- 列举审计信息
- 列举口令策略
- 列举数据库链接
SidGusser
同样是针对Oracle的SID进行暴力枚举的工具。SID 为Oracle实例名,Oracle连接字符串,通过实例名+用户+密码连接
tnscmd10g
允许用户向Oracle数据库中注入命令执行。
sqlsus
它是一个开放源代码的MySQL注入和接管工具,sqlsus使用perl编写,基于命令行界面。sqlsus可以获取数据库结构,注入自己的sql语句,从服务器下载文件,爬行web站点可写目录,上传和控制后面人,克隆数据库等等。最好用的两点是注射获取数据的速度非常快,另外一个最大的特点是自动搜索可写目录。首先得生成配置文件sqlsus -g test.conf,然后对配置文件进行修改;接着使用sqlsus test.conf进行注入。
sqlninja
在sql注入方面一直尊sqlmap为神奇,但sqlninja也有自己的特点。
sqlninja是一款perl语言编写的一个专门针对MSQSQL的注入工具。和市面上其他注入工具不同,sqlninja没有花费精力再跑数据库上,而专注于获取一个shell,其优点如下:
- 一个专门针对MSSQL的注入工具;
- 可找到元辰sql服务器上的标志和特征;
- sa口令的强力攻击;
- 一旦找到sa口令,即可将权限提升到sa;
- 如果原始xp_cmdshell被禁用,会立刻创建一个可运行的xp_cmdshell;
sqlmap
sqlmap是一个开源的漏洞测试工具,它主要用于自动化地侦测和实施SQL注入攻击以及渗透数据库服务器。SQLMAP配有强大的侦测引擎,适用于高级渗透测试用户,不仅可以获得不同数据库的指纹信息,还可以从数据库中提取数据,此外还能够处理潜在的文件系统以及通过带外数据连接执行系统命令等。
sqlmap常用命令:
sqlmap -u "http://url/news?id=1" –current-user #获取当前用户名称
sqlmap -u "http://www.xxoo.com/news?id=1" –current-db #获取当前数据库名称
sqlmap -u "http://www.xxoo.com/news?id=1" –tables -D "db_name" #列表名
sqlmap -u "http://url/news?id=1" –columns -T "tablename" users-D "db_name" -v 0 #列字段
sqlmap -u "http://url/news?id=1" –dump -C "column_name" -T "table_name" -D "db_name" -v 0 #获取字段内容
sqlmap -u "http://url/news?id=1" –smart –level 3 –users # smart智能 level 执行测试等级
sqlmap -u "http://url/news?id=1" –dbms "Mysql" –users # dbms 指定数据库类型
sqlmap -u "http://url/news?id=1" –users #列数据库用户
sqlmap -u "http://url/news?id=1" –dbs#列数据库
sqlmap -u "http://url/news?id=1" –passwords #数据库用户密码
sqlmap -u "http://url/news?id=1" –passwords-U root -v 0 #列出指定用户数据库密码
sqlmap -u "http://url/news?id=1" –dump -C "password,user,id" -T "tablename" -D "db_name" –start 1 –stop 20 #列出指定字段,列出20条
sqlmap -u "http://url/news?id=1" –dump-all -v 0 #列出所有数据库所有表
sqlmap -u "http://url/news?id=1" –privileges #查看权限
sqlmap -u "http://url/news?id=1" –privileges -U root #查看指定用户权限
sqlmap -u "http://url/news?id=1" –is-dba -v 1 #是否是数据库管理员
sqlmap -u "http://url/news?id=1" –roles #枚举数据库用户角色
sqlmap -u "http://url/news?id=1" –udf-inject #导入用户自定义函数(获取系统权限!)
sqlmap -u "http://url/news?id=1" –dump-all –exclude-sysdbs -v 0 #列出当前库所有表
sqlmap -u "http://url/news?id=1" –union-cols #union 查询表记录
sqlmap -u "http://url/news?id=1" –cookie "COOKIE_VALUE" #cookie注入
sqlmap -u "http://url/news?id=1" -b #获取banner信息
sqlmap -u "http://url/news?id=1" –data "id=3" #post注入
sqlmap -u "http://url/news?id=1" -v 1 -f #指纹判别数据库类型
sqlmap -u "http://url/news?id=1" –proxy"http://127.0.0.1:8118" #代理注入
sqlmap -u "http://url/news?id=1″–string”STRING_ON_TRUE_PAGE" #指定关键词
sqlmap -u "http://url/news?id=1" –sql-shell #执行指定sql命令
sqlmap -u "http://url/news?id=1" –file /etc/passwd python sqlmap/sqlmap.py -u "http://url/news?id=1" –os-cmd=whoami #执行系统命令
sqlmap -u "http://url/news?id=1" –os-shell #系统交互shell
sqlmap -u "http://url/news?id=1" –os-pwn #反弹shell
sqlmap -u "http://url/news?id=1" –reg-read #读取win系统注册表
sqlmap -u "http://url/news?id=1" –dbs-o "sqlmap.log" #保存进度
sqlmap -u "http://url/news?id=1" –dbs -o "sqlmap.log" –resume #恢复已保存进度
sqlmap -g "google语法" –dump-all –batch #google搜索注入点自动 跑出所有字段攻击实例
sqlmap -u "http://url/news?id=1&Submit=Submit" –cookie="PHPSESSID=41aa833e6d0d28f489ff1ab5a7531406" –string="Surname" –dbms=mysql –users –password
课堂测验
攻击机Seed的ip地址为192.168.11.111
靶机A:Linux Metasploitable(IP:192.168.11.113)
靶机B:Windows Metasploitable(IP:192.168.11.231)
ARP欺骗
主机Aping主机B,可以得到一个路由表:
首先查看一下A的MAC地址
要欺骗A,所以在主机C当中执行以下命令
然后查看A中arp缓存内容