CTF之web学习记录 -- SQL注入基础

CTF之web学习记录 – SQL注入进阶
CTF之web学习记录 – SQL注入检测绕过

概述

  SQL注入就是指web应用程序对用户输入数据的合法性没有判断,没有进行有效的字符过滤,前端传入后端的参数是攻击者可控的,并且参数被带入数据库查询,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作。

基本原理

  所谓sql注入的基本原理,也就是说sql注入是怎么发生的,我们以下面php代码中构造sql查询语句的方式为例。

<?php
$id = $_GET['id'];
$query = "select * from users where user_id = $id;";
......
......
?>

  如上面代码所示,其实就产生了整型sql注入,当我们输入1 or 1 = 1就会暴露出所有用户的信息,从而偏离了原来程序员所想要实现的效果或者说他并不希望用户可以这样做。简而言之,sql注入的存在原因,其一是没有对用户的输入进行任何检查和过滤,其二是在后端直接拼接了sql语句,没有使用更安全的函数。因此使得用户可以控制sql语句的构造,通过一定的拼接技巧使得暴露出数据库中的信息。

MySql注入基本知识

information_schema

  information_schema是MySql5.0版本后默认在数据库中存在的一个重要数据库,后续我们泄露数据名、表名等一系列操作都需要借助该数据库。记住该数据库下的三个表名及其重要字段,如下代码所示。

# table 1
schemata --> 存储该用户创建的所有数据库的库名
schema_name --> 记录数据库库名的字段

# table 2
tables --> 存储该用户创建的所有数据库的库名和表名
table_schema --> 记录数据库库名的字段
table_name --> 记录数据库表名的字段

# table 3
columns --> 存储该用户创建所有数据库的库名、表名和字段名
table_schema --> 记录数据库库名的字段
table_name --> 记录数据库表名的字段
column_name --> 记录表中的字段名的字段

  如下截图所示,是以dvwa中数据库作为对象进行的展示。
schemata

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值