Class AbstractInjectionBit<T extends AbstractCallableBit<T>>
java.lang.Object
com.jsql.model.injection.strategy.blind.AbstractInjectionBit<T>
- Direct Known Subclasses:
AbstractInjectionMonobit
,InjectionMultibit
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final AbstractInjectionBit.BlindOperator
protected final InjectionModel
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
AbstractInjectionBit
(InjectionModel injectionModel, AbstractInjectionBit.BlindOperator blindOperator) -
Method Summary
Modifier and TypeMethodDescriptionRun a HTTP call via the model.callUrl
(String urlString, String metadataInjectionProcess, AbstractCallableBit<?> callableBoolean) protected static char[]
abstract String
Display a message to explain how is blind/time working.abstract char[]
initMaskAsciiChar
(List<char[]> bytes, T currentCallable) abstract void
initNextChar
(String sqlQuery, List<char[]> bytes, AtomicInteger indexChar, CompletionService<T> taskCompletionService, AtomicInteger countTasksSubmitted, T currentCallable) inject
(String sqlQuery, AbstractSuspendable suspendable) Process the whole boolean injection, character by character, bit by bit.protected boolean
injectCharacter
(List<char[]> bytes, AtomicInteger countTasksSubmitted, AtomicInteger countBadAsciiCode, T currentCallable) abstract boolean
Start one test to verify if boolean works.
-
Field Details
-
falsyBit
-
falsyBin
-
truthyBit
-
truthyBin
-
injectionModel
-
blindOperator
-
-
Constructor Details
-
AbstractInjectionBit
protected AbstractInjectionBit(InjectionModel injectionModel, AbstractInjectionBit.BlindOperator blindOperator)
-
-
Method Details
-
isInjectable
Start one test to verify if boolean works.- Returns:
- true if boolean method is confirmed
- Throws:
StoppedByUserSlidingException
-
initNextChar
public abstract void initNextChar(String sqlQuery, List<char[]> bytes, AtomicInteger indexChar, CompletionService<T> taskCompletionService, AtomicInteger countTasksSubmitted, T currentCallable) -
initMaskAsciiChar
-
getInfoMessage
Display a message to explain how is blind/time working. -
inject
public String inject(String sqlQuery, AbstractSuspendable suspendable) throws StoppedByUserSlidingException Process the whole boolean injection, character by character, bit by bit.- Parameters:
sqlQuery
- SQL querysuspendable
- Action a user can stop- Returns:
- Final string: SQLiABCDEF...
- Throws:
StoppedByUserSlidingException
-
injectCharacter
protected boolean injectCharacter(List<char[]> bytes, AtomicInteger countTasksSubmitted, AtomicInteger countBadAsciiCode, T currentCallable) throws InjectionFailureException - Throws:
InjectionFailureException
-
callUrl
Run a HTTP call via the model.- Parameters:
urlString
- URL to inject- Returns:
- Source code
-
callUrl
public String callUrl(String urlString, String metadataInjectionProcess, AbstractCallableBit<?> callableBoolean) -
getBooleanMode
-
getBitsUnset
protected static char[] getBitsUnset()
-