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.BlindOperatorprotected final InjectionModel -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractInjectionBit(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 StringDisplay a message to explain how is blind/time working.abstract char[]initMaskAsciiChar(List<char[]> bytes, T currentCallable) abstract voidinitNextChar(String sqlQuery, List<char[]> bytes, AtomicInteger indexChar, CompletionService<T> taskCompletionService, AtomicInteger countTasksSubmitted, AtomicInteger countBadAsciiCode, T currentCallable) inject(String sqlQuery, AbstractSuspendable suspendable) Process the whole boolean injection, character by character, bit by bit.protected booleanisCharCompleteWithCorruptCheck(List<char[]> bytes, AtomicInteger countBadAsciiCode, T currentCallable) abstract booleanStart one test to verify if boolean works.
-
Field Details
-
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, AtomicInteger countBadAsciiCode, 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
-
isCharCompleteWithCorruptCheck
protected boolean isCharCompleteWithCorruptCheck(List<char[]> bytes, 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) -
getBlindOperator
-
getBitsUnset
protected static char[] getBitsUnset()
-