pikachu之SQL注入

在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库注入漏洞。
SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数据库受损(被脱裤、被删除、甚至整个服务器权限沦陷)。
在构建代码时,一般会从如下几个方面的策略来防止SQL注入漏洞:
1.对传进SQL语句里面的变量进行过滤,不允许危险字符传入;
2.使用参数化(Parameterized Query 或 Parameterized Statement);
3.还有就是,目前有很多ORM框架会自动使用参数化解决注入问题,但其也提供了"拼接"的方式,所以使用时需要慎重!

第一关数字型注入

因为是数字型注入,直接在后面加上真命题就行,这里测试了一下不用加上单引号

第二关字符型注入

字符型注入我直接加入单引号在加上一个真命题就行了,不知道为什么用BP改没用



第三关搜索型注入

一般的搜索栏都是以'%关键字%'的方式存在,可以先输入一个' ,发现报错语句后面有%'没闭合


假设输入'and 1=1 and '%'=',则SQL语句就会变成'%'and 1=1 and '%'='%' order by password

可以通过' and 1=1 order by X#来确定字段数,发现X为4时报错,所以有3个字段

证明1,2,3都可以回显

union select同样的方法可以查数据库名,表名,字段,字段内容




第四关XX型注入

看了下提示说是制造闭合条件,用1'试了下,报错说多了'),猜测语句是('关键字'),明白了就可以开始构造闭合条件


爆数据库名,后面的步骤是一样的

第五关insert/update注入

第六关delete注入

在留言板输入是无法注入的,就尝试用BP去注入,看了一下大佬们的WP,明白了是通过修改URL的id的参数进行SQL注入 加了个单引号测试一下,下面就是利用报错注入,后面的步骤都差不多


67%20or%20updatexml(1,concat(0x7e,database()),1)%20

58%20or%20updatexml(1,concat(0x7e,(select%20group_concat(table_name)from%20information_schema.tables%20where%20table_schema%3d"pikachu")),1)%20

58%20or%20updatexml(1,concat(0x7e,(select%20group_concat(column_name)from%20information_schema.columns%20where%20table_name%3d"member")),1)%20

第七关http header注入

漏洞产生原因:开发人员为验证客户信息(cookie)或用http header获取客户信息(如:useragent,accept),会对http header信息进行获取并使用SQL进行处理,处理不当就会产生SQL漏洞出现

对useragent进行注入

对cookie进行注入


posted @ 2021-01-27 17:38  paidx0  阅读(78)  评论(0编辑  收藏  举报