安全/渗透面试过程中遇见的一些——SQL注入问题

主要是记录一下老师上课的内容。就当作课程笔记吧~
摘要由CSDN通过智能技术生成

SQL注入

上课内容

一.SQL注入原理

1.可以注入成功的前提:
(1).代码混合在数据中,使得恶意代码获得执行
(2).用户可以输入,且输入的语句被构造成SQL语句并获得执行。

2.各种注入串的效果:
首先明确and 和 or的优先级:and的优先级要比较高
尝试一下各种字符串的登录效果:
a’#——能登陆,用户a
’ or 1#——能登陆,用户a
alice’ #——能登陆,用户alice
a’ and ‘1 ——不能登录
a’ or ‘1 —— 能登陆,用户a
b’ or ‘1 ——能登陆,用户b
a’ or 1# ——能登陆,用户a
b’ or 1 # ——能登陆,但注意用户是a

二.SQL的一些攻击内容

1.update函数:更新表中已经有的数据,可以同时更新多列。
2.benchmark(执行次数,执行内容)函数:
该函数用来测试性能,比如可以测定某些特定操作的执行速度。
3.盲注 ——没有直接的返回的数据,但是通过查询的表现,譬如延时来窃取信息的方法。
利用and和时间函数(sleep())相连接。
例如:执行时运用的语句为:XXXX and sleep(10);——若数据库中存在XXX名字,则执行后面的休息;若数据库中没有XXX的名字,则后面也不会执行。

三.SQL防御

(一)SQL注入本质是利用数据注入代码,
所以防御就要求区分数据和代码——过滤和转义
1.过滤特殊符号
开启:magic_quote_gpc
选上之后,PHP代码就可以在用户输入的时候对用户的输入进行处理,把所有的特殊符号如’、“等都加上\进行转义
2.利用prepare_statement
Prepare_statement的作用是规定好需要的参数的类型,同时对用户的输入进行鉴别和处理;保证用户的输入不可能作为代码被执行。
指明了数据类型,将数据和代码分离,将用户输入全部转换成字符串形式。

————————————我是一条没有感情而且还是手动添加的分割线————————————————

鉴于我最近再招安全方面的实习,就一直被怼一直被怼,所以下定决心把这几个相关方面的问题在弄的清楚些。

面试准备

注入原理:

1.用户可以控制输入
2.原本程序要执行的代码,拼接了用户输入的数据。

几种注入类型

一.盲注

服务器关闭了回显错误。通过服务器返回内容来判断验证是否存在着注入。

(一).基于布尔类型的盲注

1.什么是布尔类型的盲注
Web的页面的仅仅会返回True和False。那么布尔盲注就是进行SQL注入之后然后根据页面返回的True或者是False来得到数据库中的相关信息。
2.构造布尔类型的盲注
(1)substr()函数
string substr(string, start, length) 第一个参数为要处理的字符串,start为开始位置,length为截取的长度。
例如:substr((SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE T table_schema=0xxxxxxx LIMIT 0,1),1,1)>’a’
(2)Left()函数
Left ( string, n ) string为要截取的字符串,n为长度。
(3)ORD()函数
Ord()函数同 ascii(),将字符转为 ascii,此函数为返回第一个字符的ASCII码,经常与上面的函数进行组合使用

贴一篇大佬用Python写的脚本
https://blog.csdn.net/mochu7777777/article/details/104825456

(二).基于时间类型的盲注

1.什么是时间类型的盲注
web页面的返回值只有一种,true,无论输入任何值,它的返回都会按正确的来处理。
2.一些payload中常用的函数
(1)sleep()
执行将程序(进程)挂起一段时间。
(2)if(condition,true,false) //条件语句

二.按数据类型分

(一).数字类型

后台可能为:

$id=$_POST['id']
select user,password from users where id=$
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值