sqli-labs-master初学者题目练习

Less-1

从源码可以看出id为注入点,且为单引号过滤

使用 ' 闭合

--+为注释 原本应该用--‘space’,但-与‘连在一起无法起到注释作用

order by为联合查询——同时查询两张表,但两张表列数必须相同

所有从以上两张图可以看出此表格有三列数据

爆出显示位,可以看出显示位为2与3

及在2与3位填写我们需要查询的内容

填写database()即可得到数据库名称 

?id=1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

group_concat是将查询到的结果连接起来,不然就这样一个数据

将table换成column以及table_schema='security'换成table_name='users'即可

可以看出users里面有username与password等列名

根据列名查询得到数据

Less-5

第五关没有提示信息

根据源码可以看出当我们输入正确与错误的id时他的显示页面是不同的,所以可以根据显示判断

此时我们可以选择盲注,length()判断数据库长度,ascii()和substr()联合使用,前者将后者截取的字母转化为asc码

由以上两张图可得数据库有8个字母组成

第一个字母为s,同理可得后面7个字母

Less-9

看源码可知无论id是否正确页面输出均为‘You are in...........’,所以第五关的方法就用不上了

此时我们可以用到一个新的方法

if(a,sleep(5),1)如果a结果是真的,那么执行sleep(5)页面延迟5秒,如果a的结果是假,执行1,页面不延迟。

1=1为真,所有页面加载5秒

得到数据库长度

然后后面步骤与第五关基本一致

Less-11

当我们输入1'时出现以下画面

判断是否存在sql注入

通过联合注入获取数据库信息,与第一关基本相同

Less-17

UPDATEXML(xml_target, xpath_expr, new_val)

其中,xml_target是要修改的XML类型的数据;xpath_expr是XPath表达式,用于指定要修改的节点位置;new_val指定新的节点值。

username有过滤,只能在password注入

注:有个问题,username必须正确才可以注入

输入:123' and (updatexml(1,concat(0x5c,database(),0x5c),1))#

二次注入

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值