Pwnhub之目瞪狗呆

注入很明显,更多的是考技巧。

<?php
require 'conn.php';
$id = $_GET['id'];
if (preg_match("/(sleep|benchmark|outfile|dumpfile|load_file|join)/i", $_GET['id'])) {
    die("you bad bad!");
}
$sql = "select * from article where id='" . intval($id) . "'";
$res = mysql_query($sql);
if (!$res) {
    die("404 not found!");
}
$row = mysql_fetch_array($res, MYSQL_ASSOC);
mysql_query("update view set view_times=view_times+1 where id = '" . $id . " '");
?>
<body>
    <div>
        <div class="container">
            <div class="row">
                <div class="col-md-12">
                    <h1><?=$row['title']?></h1>
                    <article><?=$row['content']?></article>
                </div>
            </div>
        </div>
    </div>
</body>

sleep?

常见延时函数被禁用了,但是还是可以通过大量运算来导致mysql运行缓慢。

1、重查询,笛卡尔积

SELECT count(*) FROM information_schema.columns A, information_schema.columns B, information_schema.columns C

2、高计算量
看到pwnhub其他师傅的解题,膜一发。

concat(rpad(1,999999,'a'),rpad(1,999999,'a'))

get_lock

膜出题人do9gy师傅,学习姿势。

基本语法:

select get_lock(key, timeout) from dual;
select release_lock(key) from dual;

(1)get_lock会按照key来加锁,别的客户端再以同样的key加锁时就加不了了,处于等待状态。
(2)当调用release_lock来释放上面加的锁或客户端断线了,上面的锁才会释放,其它的客户端才能进来。

转载于:https://www.cnblogs.com/iamstudy/articles/pwnhub_mudenggoudai_writeup.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值