sqlmapproject/sqlmap · error · RuntimeError

ordered PoC unavailable: '>' blocked and %s mode has no oper

Error message

ordered PoC unavailable: '>' blocked and %s mode has no operator-free form

What it means

Error "ordered PoC unavailable: '>' blocked and %s mode has no operator-free form" thrown in sqlmapproject/sqlmap.

Source

Thrown at extra/esperanto/enumeration.py:782

        """Emit a clean, pasteable boolean payload for ONE probe (the exploitation
        primitive), so a tester can drop it into Burp without re-running discovery."""
        one = self._sub(expr, position, 1)
        if self.dialect.compare == "code" and self.dialect.charcode:
            # numeric code comparison -> render through the DISCOVERED comparator, so the PoC
            # works on the very target where '>' was blocked (BETWEEN / operator-free rung)
            code = self.dialect.charcode[1].format(expr=one)
            if self._comparator == "gt":
                return "%s>%d" % (code, gt)
            if self._comparator == "between":
                return "%s BETWEEN %d AND %d" % (code, gt + 1, 1 << 62)
            if self._cmpTemplate is not None:
                return self._cmpTemplate.format(expr=code, n=gt)
            raise RuntimeError("ordered PoC unavailable: membership comparator has no '>' form")
        # hex / collation / ordinal compare strings or wrapped values with '>'; if '>' was
        # blocked (comparator isn't 'gt') there is NO equivalent renderer for these text modes
        # -> refuse rather than emit a predicate the target already rejected.
        if self._comparator != "gt":
            raise RuntimeError("ordered PoC unavailable: '>' blocked and %s mode has no operator-free form" % self.dialect.compare)
        if self.dialect.compare == "hex" and self.dialect.hexfn:
            return "%s>'%02X'" % (self.dialect.hexfn[1].format(expr=one), gt)
        if self.dialect.compare == "collation" and self.dialect.binwrap:
            w = self.dialect.binwrap[1]
            return "%s>%s" % (w.format(x=one), w.format(x=self._lit(chr(gt))))
        if self.dialect.compare in ("equality", "equality-ci"):
            # equality mode was chosen BECAUSE ordering isn't trustworthy - don't
            # fabricate a `>` predicate the target's collation may not honour
            raise RuntimeError("ordered PoC unavailable in equality-only compare mode")
        return "%s>%s" % (one, self._lit(chr(gt)))

    def strategy(self):
        """Freeze the discovered dialect into an immutable InferenceStrategy - the
        hand-off artifact for a host inference engine (see hostExtract). Ensures the
        hex fn and quoting/backslash flags are resolved before freezing."""
        d = self.dialect
        if not self._discovered:
            self.discover()

View on GitHub (pinned to 0a35b20e39)

When it happens

Trigger: Thrown at extra/esperanto/enumeration.py:782 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of sqlmapproject/sqlmap@0a35b20e39 (2026-08-26). Data as JSON: /api/errors/33b8031a09812cd5. Report an issue: GitHub.