前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实验吧_后台登录

实验吧_后台登录

作者头像
yifei_
发布2022-11-14 14:13:10
1.2K0
发布2022-11-14 14:13:10
举报
文章被收录于专栏:yifei的专栏

  第一个CTF题!   题目链接:http://ctf5.shiyanbar.com/web/houtai/ffifdyop.php   思路:应该算是一个经验题吧,没做过的很难获取flag。   一般思路是按F12看源码,关键源码如下:

代码语言:javascript
复制
<div style="position:relative;margin:0 auto;width:300px;height:200px;padding-top:100px;font-size:20px;">
	<form action="" method="post">
		<table>
			<tr>
				请用管理员密码进行登录~~
			</tr>
			<tr>
				<td>密码:</td><td><input type="text" name='password'></td>
			</tr>
			<tr>
				<td><input type="submit" name='submit' style="margin-left:30px;"></td>
			</tr>
		</table>
	</form>
		</div>
	<!-- $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 '密码错误!';
		} -->

可以直接看到php代码,能够看出只要sql语句能够查到东西就能获取到flag,所以可以用sql注入, 如果输入的是 ‘or’<某个真值> 就能达到目的了,关键在于md5($password,true),首先对输入的东西进行MD5加密, 所以得找到一个字符串,md5加密之后是想要的字符。 而地址栏中的“ffifdyop”md5加密之后是”276f722736c95d99e921722cf9ed621c”(十六进制显示),这个十六进制串可以在http://www.5ixuexiwang.com/str/from-hex.php 转成字符串 ‘or’6É]™é!r,ùíb ,前面有’or’就够了,后面一串垃圾值就代表一个真值。 另: md5(string,raw) string  必需。规定要计算的字符串。 raw    可选。规定十六进制或二进制输出格式:     TRUE - 原始 16 字符二进制格式     FALSE - 默认。32 字符十六进制数

欢迎与我分享你的看法。 转载请注明出处:http://taowusheng.cn/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-10-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档